From 556c8805fcfd27f485bdd63cd704e4df7eac8a06 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kim=20Nguy=E1=BB=85n?= Date: Tue, 23 Apr 2013 16:58:08 +0200 Subject: [PATCH] Make the html trace tools use colors to represent the round at which an node was satisfied. --- src/ata.ml | 9 +- src/ata.mli | 3 +- src/eval.ml | 20 +- src/html.ml | 28 +-- src/html.mli | 2 +- tests/alphabet.xml.summary | 346 +++++++++++++++++----------------- tests/comments00.xml.summary | 10 +- tests/xmark_small.xml.summary | 210 ++++++++++----------- tools/add_onclick.sh | 1 - tools/do_jaxp.sh | 2 +- 10 files changed, 321 insertions(+), 310 deletions(-) diff --git a/src/ata.ml b/src/ata.ml index 6a3570c..9fe128a 100644 --- a/src/ata.ml +++ b/src/ata.ml @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) INCLUDE "utils.ml" @@ -199,6 +199,7 @@ type config = { unsat : StateSet.t; todo : TransList.t; summary : node_summary; + mutable round : int; } module Config = Hcons.Make(struct @@ -238,7 +239,8 @@ let dummy2 = TransList.cons let dummy_config = Config.make { sat = StateSet.empty; unsat = StateSet.empty; todo = TransList.nil; - summary = dummy_summary + summary = dummy_summary; + round = 0 } @@ -377,7 +379,6 @@ let simplify_atom atom pos q { Config.node=config; _ } = || ((not pos) && StateSet.mem q config.sat) then SFormula.false_ else atom - let eval_form phi fcs nss ps ss summary = let rec loop phi = begin match SFormula.expr phi with @@ -441,7 +442,7 @@ let eval_trans auto fcs nss ps ss = let unsat = StateSet.union unsat (StateSet.diff removed kept) in (* States that were found once to be satisfiable remain so *) let unsat = StateSet.diff unsat sat in - let new_config = Config.make { sat; unsat; todo ; summary = old_summary } in + let new_config = Config.make { sat; unsat; todo ; summary = old_summary ; round = 0 } in Cache.N4.add auto.cache4 oid fcsid nssid psid new_config; new_config in diff --git a/src/ata.mli b/src/ata.mli index fd75e2e..0861773 100644 --- a/src/ata.mli +++ b/src/ata.mli @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) type predicate = @@ -74,6 +74,7 @@ type config = { unsat : StateSet.t; todo : TransList.t; summary : node_summary; + mutable round : int; } module Config : Hcons.S with type data = config diff --git a/src/eval.ml b/src/eval.ml index d0961d7..22a3b5f 100644 --- a/src/eval.ml +++ b/src/eval.ml @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) INCLUDE "utils.ml" @@ -36,18 +36,21 @@ END let html tree node i config msg = let config = config.Ata.Config.node in - Html.trace (T.preorder tree node) i - "%s
sat: %a
unsat: %a
todo: %a
" + let oldi = config.Ata.round in + Html.trace (T.preorder tree node) i oldi + "%s
sat: %a
unsat: %a
todo: %around: %i
" msg StateSet.print config.Ata.sat StateSet.print config.Ata.unsat - (Ata.TransList.print ~sep:"
") config.Ata.todo + (Ata.TransList.print ~sep:"
") config.Ata.todo oldi type cache = StateSet.t Cache.N1.t let get c t n = Cache.N1.find c (T.preorder t n) - let set c t n v = Cache.N1.add c (T.preorder t n) v + let set c t n v i = + v.Ata.Config.node.Ata.round <- i; + Cache.N1.add c (T.preorder t n) v let top_down_run auto tree node cache _i = @@ -83,20 +86,20 @@ END TRACE(html tree node _i config1 "Updating transitions"); - if config0 != config1 then set cache tree node config1; + if config0 != config1 then set cache tree node config1 _i; let () = loop fc in let fcs1 = get cache tree fc in let config2 = Ata.eval_trans auto fcs1 nss ps config1 in TRACE(html tree node _i config2 "Updating transitions (after first-child)"); - if config1 != config2 then set cache tree node config2; + if config1 != config2 then set cache tree node config2 _i; let () = loop ns in let config3 = Ata.eval_trans auto fcs1 (get cache tree ns) ps config2 in TRACE(html tree node _i config3 "Updating transitions (after next-sibling)"); - if config2 != config3 then set cache tree node config3; + if config2 != config3 then set cache tree node config3 _i; (* We do set the redo flat if : *) if not ( config0 == config3 (* did not gain any new information *) @@ -128,6 +131,7 @@ END Ata.unsat = StateSet.empty; Ata.todo = Ata.TransList.nil; Ata.summary = Ata.dummy_summary; + Ata.round = ~-1; }) in let redo = ref true in diff --git a/src/html.ml b/src/html.ml index 858b43f..4119f23 100644 --- a/src/html.ml +++ b/src/html.ml @@ -3,39 +3,45 @@ module M = Map.Make(struct type t = int let compare = compare end) let info = Hashtbl.create 2017 +let max_round = ref ~-1 -let add_info (nodeid:int) (i:int) s = - let m = try Hashtbl.find info nodeid with Not_found -> M.empty in - let old_s = try M.find i m with Not_found -> "" in - let s' = old_s ^ s in - let m' = M.add i s' m in - Hashtbl.replace info nodeid m' +let add_info (nodeid:int) (i:int) (oldi: int) s = + if i > !max_round then max_round := i; + if i <= oldi || oldi < 0 then begin + let m = try Hashtbl.find info nodeid with Not_found -> M.empty in + let old_s = try M.find i m with Not_found -> "" in + let s' = old_s ^ s in + let m' = M.add i s' m in + Hashtbl.replace info nodeid m' + end let buff = Buffer.create 20 let fmt = formatter_of_buffer buff -let trace nodeid i = +let trace nodeid i oldi = let () = pp_print_flush fmt (); Buffer.clear buff in kfprintf (fun fmt -> pp_print_flush fmt (); let s = Buffer.contents buff in - add_info nodeid i s) fmt + add_info nodeid i oldi s) fmt let gen_trace (type s) = (); fun t tree -> let module T = (val (t) : Tree.S with type t = s) in let rec loop odot ohtml node parent = if node == T.nil then () else begin - let s_node = "node" ^ (string_of_int (T.preorder tree node)) in - fprintf odot "%s[ id=\"%s\" label=\"%s\"];\n" - s_node s_node (QName.to_string (T.tag tree node)); let m = try Hashtbl.find info (T.preorder tree node) with Not_found -> M.empty in + let last_round = try fst (M.max_binding m) with Not_found -> 0 in + let s_node = "node" ^ (string_of_int (T.preorder tree node)) in + fprintf odot "%s[ id=\"%s\" label=\"%s\" style=filled fillcolor=\"%f,1.0,1.0\"];\n" + s_node s_node (QName.to_string (T.tag tree node)) + (0.2 *. (1.0 -. (float last_round /. float !max_round))) ; fprintf ohtml "data['%s'] = new Array();\n" s_node; M.iter (fun i s -> fprintf ohtml "data['%s'][%i] = '%s';\n" s_node i s) diff --git a/src/html.mli b/src/html.mli index 660710e..a1506c9 100644 --- a/src/html.mli +++ b/src/html.mli @@ -1,2 +1,2 @@ -val trace : int -> int -> ('a, Format.formatter, unit, unit) format4 -> 'a +val trace : int -> int -> int -> ('a, Format.formatter, unit, unit) format4 -> 'a val gen_trace : (module Tree.S with type t = 'a) -> 'a -> unit diff --git a/tests/alphabet.xml.summary b/tests/alphabet.xml.summary index b84f81e..cc9ae7d 100644 --- a/tests/alphabet.xml.summary +++ b/tests/alphabet.xml.summary @@ -1,11 +1,11 @@ Query: A1 : //L/* -STATS: parsing xml document: 0.375986ms -STATS: parsing XPath query: 0.036001ms -STATS: compiling XPath query: 0.203133ms +STATS: parsing xml document: 0.199080ms +STATS: parsing XPath query: 0.056028ms +STATS: compiling XPath query: 0.133991ms STATS: Query: /descendant-or-self::node()/child::L/child::* STATS: Automaton: -STATS: evaluating query: 2.120018ms -STATS: serializing results: 1.610041ms +STATS: evaluating query: 0.764132ms +STATS: serializing results: 1.646996ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -13,13 +13,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: A2 : //L/parent::* -STATS: parsing xml document: 0.386000ms -STATS: parsing XPath query: 0.042915ms -STATS: compiling XPath query: 0.164032ms +STATS: parsing xml document: 0.370979ms +STATS: parsing XPath query: 0.051022ms +STATS: compiling XPath query: 0.166893ms STATS: Query: /descendant-or-self::node()/child::L/parent::* STATS: Automaton: -STATS: evaluating query: 1.954079ms -STATS: serializing results: 1.950026ms +STATS: evaluating query: 2.008915ms +STATS: serializing results: 1.794100ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1310 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -27,13 +27,13 @@ STATS: cache4: length: 1464, used: 154, occupation: 0.105191 Diff: ok ------------------------------------------- Query: A3 : //L/descendant::* -STATS: parsing xml document: 0.361919ms -STATS: parsing XPath query: 0.036955ms -STATS: compiling XPath query: 0.213861ms +STATS: parsing xml document: 0.369072ms +STATS: parsing XPath query: 0.089884ms +STATS: compiling XPath query: 0.217915ms STATS: Query: /descendant-or-self::node()/child::L/descendant::* STATS: Automaton: -STATS: evaluating query: 2.192974ms -STATS: serializing results: 1.615047ms +STATS: evaluating query: 2.200127ms +STATS: serializing results: 1.621008ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 918 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -41,13 +41,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962 Diff: ok ------------------------------------------- Query: A4 : //L/descendant-or-self::* -STATS: parsing xml document: 0.368118ms -STATS: parsing XPath query: 0.087023ms -STATS: compiling XPath query: 0.189066ms +STATS: parsing xml document: 0.438929ms +STATS: parsing XPath query: 0.048876ms +STATS: compiling XPath query: 0.180006ms STATS: Query: /descendant-or-self::node()/child::L/descendant-or-self::* STATS: Automaton: -STATS: evaluating query: 2.336025ms -STATS: serializing results: 1.883030ms +STATS: evaluating query: 2.231836ms +STATS: serializing results: 1.777887ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 918 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -55,13 +55,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962 Diff: ok ------------------------------------------- Query: A5 : //L/ancestor::* -STATS: parsing xml document: 0.364065ms -STATS: parsing XPath query: 0.037909ms -STATS: compiling XPath query: 0.165939ms +STATS: parsing xml document: 0.365973ms +STATS: parsing XPath query: 0.051022ms +STATS: compiling XPath query: 0.172138ms STATS: Query: /descendant-or-self::node()/child::L/ancestor::* STATS: Automaton: -STATS: evaluating query: 2.583027ms -STATS: serializing results: 2.183914ms +STATS: evaluating query: 2.207994ms +STATS: serializing results: 2.154827ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1320 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -69,13 +69,13 @@ STATS: cache4: length: 1476, used: 156, occupation: 0.105691 Diff: ok ------------------------------------------- Query: A6 : //L/ancestor-or-self::* -STATS: parsing xml document: 0.574827ms -STATS: parsing XPath query: 0.056028ms -STATS: compiling XPath query: 0.334024ms +STATS: parsing xml document: 0.367165ms +STATS: parsing XPath query: 0.046968ms +STATS: compiling XPath query: 0.205994ms STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::* STATS: Automaton: -STATS: evaluating query: 3.679037ms -STATS: serializing results: 2.243042ms +STATS: evaluating query: 2.345800ms +STATS: serializing results: 2.530098ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -83,13 +83,13 @@ STATS: cache4: length: 1397, used: 155, occupation: 0.110952 Diff: ok ------------------------------------------- Query: A7 : //L/following-sibling::* -STATS: parsing xml document: 0.149012ms -STATS: parsing XPath query: 0.021935ms -STATS: compiling XPath query: 0.066042ms +STATS: parsing xml document: 0.364780ms +STATS: parsing XPath query: 0.059128ms +STATS: compiling XPath query: 0.162125ms STATS: Query: /descendant-or-self::node()/child::L/following-sibling::* STATS: Automaton: -STATS: evaluating query: 0.725985ms -STATS: serializing results: 1.456976ms +STATS: evaluating query: 1.799107ms +STATS: serializing results: 1.568079ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -97,13 +97,13 @@ STATS: cache4: length: 1173, used: 122, occupation: 0.104007 Diff: ok ------------------------------------------- Query: A8 : //L/preceding-sibling::* -STATS: parsing xml document: 0.148058ms -STATS: parsing XPath query: 0.023842ms -STATS: compiling XPath query: 0.062943ms +STATS: parsing xml document: 0.370979ms +STATS: parsing XPath query: 0.053883ms +STATS: compiling XPath query: 0.162840ms STATS: Query: /descendant-or-self::node()/child::L/preceding-sibling::* STATS: Automaton: -STATS: evaluating query: 0.781059ms -STATS: serializing results: 1.357079ms +STATS: evaluating query: 1.916885ms +STATS: serializing results: 4.055023ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -111,13 +111,13 @@ STATS: cache4: length: 1314, used: 140, occupation: 0.106545 Diff: ok ------------------------------------------- Query: A9 : //L/following::* -STATS: parsing xml document: 0.370979ms -STATS: parsing XPath query: 0.042915ms -STATS: compiling XPath query: 0.288963ms +STATS: parsing xml document: 0.372887ms +STATS: parsing XPath query: 0.051022ms +STATS: compiling XPath query: 0.334978ms STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::* STATS: Automaton: -STATS: evaluating query: 6.980896ms -STATS: serializing results: 1.842976ms +STATS: evaluating query: 6.406069ms +STATS: serializing results: 1.731873ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 2104 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -125,13 +125,13 @@ STATS: cache4: length: 2334, used: 230, occupation: 0.098543 Diff: ok ------------------------------------------- Query: A10 : //L/preceding::* -STATS: parsing xml document: 0.371933ms -STATS: parsing XPath query: 0.046968ms -STATS: compiling XPath query: 0.277996ms +STATS: parsing xml document: 0.368118ms +STATS: parsing XPath query: 0.054836ms +STATS: compiling XPath query: 0.283003ms STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::* STATS: Automaton: -STATS: evaluating query: 8.105993ms -STATS: serializing results: 1.837969ms +STATS: evaluating query: 7.886887ms +STATS: serializing results: 1.865149ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 942 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -139,13 +139,13 @@ STATS: cache4: length: 1077, used: 135, occupation: 0.125348 Diff: ok ------------------------------------------- Query: A11 : //L/self::* -STATS: parsing xml document: 0.518084ms -STATS: parsing XPath query: 0.062943ms -STATS: compiling XPath query: 0.202179ms +STATS: parsing xml document: 0.392914ms +STATS: parsing XPath query: 0.047922ms +STATS: compiling XPath query: 0.177145ms STATS: Query: /descendant-or-self::node()/child::L/self::* STATS: Automaton: -STATS: evaluating query: 1.765013ms -STATS: serializing results: 1.644850ms +STATS: evaluating query: 1.735926ms +STATS: serializing results: 1.796961ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 837 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -153,13 +153,13 @@ STATS: cache4: length: 946, used: 109, occupation: 0.115222 Diff: ok ------------------------------------------- Query: A12 : //L/@id/parent::* -STATS: parsing xml document: 0.440121ms -STATS: parsing XPath query: 0.053883ms -STATS: compiling XPath query: 0.241041ms +STATS: parsing xml document: 0.378132ms +STATS: parsing XPath query: 0.059843ms +STATS: compiling XPath query: 0.287056ms STATS: Query: /descendant-or-self::node()/child::L/attribute::@id/parent::* STATS: Automaton: -STATS: evaluating query: 3.050089ms -STATS: serializing results: 1.691103ms +STATS: evaluating query: 2.931833ms +STATS: serializing results: 1.657963ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1594 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -167,13 +167,13 @@ STATS: cache4: length: 1750, used: 156, occupation: 0.089143 Diff: ok ------------------------------------------- Query: P1 : //*[L] -STATS: parsing xml document: 0.403881ms +STATS: parsing xml document: 0.357866ms STATS: parsing XPath query: 0.046968ms -STATS: compiling XPath query: 0.208855ms +STATS: compiling XPath query: 0.152111ms STATS: Query: /descendant-or-self::node()/child::*[ child::L ] STATS: Automaton: -STATS: evaluating query: 2.264977ms -STATS: serializing results: 1.861095ms +STATS: evaluating query: 1.730204ms +STATS: serializing results: 1.868010ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1326 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -181,13 +181,13 @@ STATS: cache4: length: 1480, used: 154, occupation: 0.104054 Diff: ok ------------------------------------------- Query: P2 : //*[parent::L] -STATS: parsing xml document: 0.488997ms -STATS: parsing XPath query: 0.049829ms -STATS: compiling XPath query: 0.171900ms +STATS: parsing xml document: 0.372171ms +STATS: parsing XPath query: 0.052929ms +STATS: compiling XPath query: 0.166893ms STATS: Query: /descendant-or-self::node()/child::*[ parent::L ] STATS: Automaton: -STATS: evaluating query: 1.897097ms -STATS: serializing results: 1.640081ms +STATS: evaluating query: 1.759052ms +STATS: serializing results: 1.687050ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -195,13 +195,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: P3 : //*[descendant::L] -STATS: parsing xml document: 0.370026ms -STATS: parsing XPath query: 0.042915ms -STATS: compiling XPath query: 0.175953ms +STATS: parsing xml document: 0.368834ms +STATS: parsing XPath query: 0.045776ms +STATS: compiling XPath query: 0.169039ms STATS: Query: /descendant-or-self::node()/child::*[ descendant::L ] STATS: Automaton: STATS: evaluating query: 1.796007ms -STATS: serializing results: 2.020121ms +STATS: serializing results: 2.280951ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1336 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -209,13 +209,13 @@ STATS: cache4: length: 1492, used: 156, occupation: 0.104558 Diff: ok ------------------------------------------- Query: P4 : //*[descendant-or-self::L] -STATS: parsing xml document: 0.371933ms -STATS: parsing XPath query: 0.043869ms -STATS: compiling XPath query: 0.185966ms +STATS: parsing xml document: 0.386953ms +STATS: parsing XPath query: 0.049829ms +STATS: compiling XPath query: 0.176907ms STATS: Query: /descendant-or-self::node()/child::*[ descendant-or-self::L ] STATS: Automaton: -STATS: evaluating query: 2.321959ms -STATS: serializing results: 2.125025ms +STATS: evaluating query: 2.150059ms +STATS: serializing results: 2.135992ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -223,13 +223,13 @@ STATS: cache4: length: 1397, used: 155, occupation: 0.110952 Diff: ok ------------------------------------------- Query: P5 : //*[ancestor::L] -STATS: parsing xml document: 0.358820ms -STATS: parsing XPath query: 0.041962ms -STATS: compiling XPath query: 0.192881ms +STATS: parsing xml document: 0.374079ms +STATS: parsing XPath query: 0.050068ms +STATS: compiling XPath query: 0.192165ms STATS: Query: /descendant-or-self::node()/child::*[ ancestor::L ] STATS: Automaton: -STATS: evaluating query: 1.881123ms -STATS: serializing results: 1.569033ms +STATS: evaluating query: 1.835823ms +STATS: serializing results: 1.564980ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 918 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -237,13 +237,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962 Diff: ok ------------------------------------------- Query: P6 : //*[ancestor-or-self::L] -STATS: parsing xml document: 0.365973ms -STATS: parsing XPath query: 0.043869ms -STATS: compiling XPath query: 0.189066ms +STATS: parsing xml document: 0.431061ms +STATS: parsing XPath query: 0.049114ms +STATS: compiling XPath query: 0.180960ms STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::L ] STATS: Automaton: -STATS: evaluating query: 2.273083ms -STATS: serializing results: 1.817942ms +STATS: evaluating query: 1.905918ms +STATS: serializing results: 1.775026ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 918 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -251,13 +251,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962 Diff: ok ------------------------------------------- Query: P7 : //*[following-sibling::L] -STATS: parsing xml document: 0.370026ms -STATS: parsing XPath query: 0.044107ms -STATS: compiling XPath query: 0.164032ms +STATS: parsing xml document: 0.376940ms +STATS: parsing XPath query: 0.046015ms +STATS: compiling XPath query: 0.154972ms STATS: Query: /descendant-or-self::node()/child::*[ following-sibling::L ] STATS: Automaton: -STATS: evaluating query: 1.653910ms -STATS: serializing results: 1.550913ms +STATS: evaluating query: 1.612902ms +STATS: serializing results: 1.538992ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -265,13 +265,13 @@ STATS: cache4: length: 1314, used: 140, occupation: 0.106545 Diff: ok ------------------------------------------- Query: P8 : //*[preceding-sibling::L] -STATS: parsing xml document: 0.367880ms -STATS: parsing XPath query: 0.049114ms -STATS: compiling XPath query: 0.164986ms +STATS: parsing xml document: 0.437021ms +STATS: parsing XPath query: 0.058889ms +STATS: compiling XPath query: 0.155210ms STATS: Query: /descendant-or-self::node()/child::*[ preceding-sibling::L ] STATS: Automaton: -STATS: evaluating query: 1.538992ms -STATS: serializing results: 1.570940ms +STATS: evaluating query: 1.534939ms +STATS: serializing results: 1.504898ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -279,13 +279,13 @@ STATS: cache4: length: 1173, used: 122, occupation: 0.104007 Diff: ok ------------------------------------------- Query: P9 : //*[following::L] -STATS: parsing xml document: 0.445127ms -STATS: parsing XPath query: 0.042915ms -STATS: compiling XPath query: 0.234127ms +STATS: parsing xml document: 0.350952ms +STATS: parsing XPath query: 0.050068ms +STATS: compiling XPath query: 0.226021ms STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ] STATS: Automaton: -STATS: evaluating query: 7.771015ms -STATS: serializing results: 1.768112ms +STATS: evaluating query: 6.453037ms +STATS: serializing results: 1.742840ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 780 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -293,13 +293,13 @@ STATS: cache4: length: 915, used: 135, occupation: 0.147541 Diff: ok ------------------------------------------- Query: P10 : //*[preceding::L] -STATS: parsing xml document: 0.387192ms -STATS: parsing XPath query: 0.058889ms -STATS: compiling XPath query: 0.237942ms +STATS: parsing xml document: 0.368118ms +STATS: parsing XPath query: 0.055075ms +STATS: compiling XPath query: 0.227928ms STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L ] STATS: Automaton: -STATS: evaluating query: 4.338026ms -STATS: serializing results: 1.936913ms +STATS: evaluating query: 3.612041ms +STATS: serializing results: 1.841068ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1767 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -307,13 +307,13 @@ STATS: cache4: length: 1980, used: 213, occupation: 0.107576 Diff: ok ------------------------------------------- Query: P11 : //*[self::L] -STATS: parsing xml document: 0.246048ms -STATS: parsing XPath query: 0.040054ms -STATS: compiling XPath query: 0.104904ms +STATS: parsing xml document: 0.166178ms +STATS: parsing XPath query: 0.030041ms +STATS: compiling XPath query: 0.080109ms STATS: Query: /descendant-or-self::node()/child::*[ self::L ] STATS: Automaton: -STATS: evaluating query: 0.613928ms -STATS: serializing results: 1.585007ms +STATS: evaluating query: 0.607967ms +STATS: serializing results: 1.639128ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 837 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -321,13 +321,13 @@ STATS: cache4: length: 946, used: 109, occupation: 0.115222 Diff: ok ------------------------------------------- Query: P12 : //*[@id] -STATS: parsing xml document: 0.401974ms -STATS: parsing XPath query: 0.066042ms -STATS: compiling XPath query: 0.286818ms +STATS: parsing xml document: 0.366926ms +STATS: parsing XPath query: 0.043869ms +STATS: compiling XPath query: 0.211954ms STATS: Query: /descendant-or-self::node()/child::*[ attribute::@id ] STATS: Automaton: -STATS: evaluating query: 1.514912ms -STATS: serializing results: 2.412796ms +STATS: evaluating query: 1.461983ms +STATS: serializing results: 2.345085ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 907 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -335,13 +335,13 @@ STATS: cache4: length: 1022, used: 115, occupation: 0.112524 Diff: ok ------------------------------------------- Query: T1 : //L/text() -STATS: parsing xml document: 0.167847ms -STATS: parsing XPath query: 0.054121ms -STATS: compiling XPath query: 0.205994ms +STATS: parsing xml document: 0.365973ms +STATS: parsing XPath query: 0.055075ms +STATS: compiling XPath query: 0.200987ms STATS: Query: /descendant-or-self::node()/child::L/child::text() STATS: Automaton: -STATS: evaluating query: 2.181053ms -STATS: serializing results: 1.456022ms +STATS: evaluating query: 2.068043ms +STATS: serializing results: 1.474857ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -349,13 +349,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: T2 : //L/comment() -STATS: parsing xml document: 0.375986ms -STATS: parsing XPath query: 0.061035ms -STATS: compiling XPath query: 0.207901ms +STATS: parsing xml document: 0.478983ms +STATS: parsing XPath query: 0.068903ms +STATS: compiling XPath query: 0.209093ms STATS: Query: /descendant-or-self::node()/child::L/child::comment() STATS: Automaton: -STATS: evaluating query: 2.149820ms -STATS: serializing results: 1.460075ms +STATS: evaluating query: 2.010107ms +STATS: serializing results: 1.503944ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -363,13 +363,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: T3 : //L/processing-instruction() -STATS: parsing xml document: 0.547886ms -STATS: parsing XPath query: 0.077963ms -STATS: compiling XPath query: 0.247002ms +STATS: parsing xml document: 0.419855ms +STATS: parsing XPath query: 0.075102ms +STATS: compiling XPath query: 0.198841ms STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction() STATS: Automaton: -STATS: evaluating query: 2.171040ms -STATS: serializing results: 1.477957ms +STATS: evaluating query: 2.058029ms +STATS: serializing results: 1.420975ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -377,13 +377,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: T4 : //L/processing-instruction("myPI") -STATS: parsing xml document: 0.364065ms -STATS: parsing XPath query: 0.076056ms -STATS: compiling XPath query: 0.206947ms +STATS: parsing xml document: 0.360966ms +STATS: parsing XPath query: 0.072002ms +STATS: compiling XPath query: 0.195026ms STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction('?myPI') STATS: Automaton: -STATS: evaluating query: 2.166033ms -STATS: serializing results: 1.529932ms +STATS: evaluating query: 1.106977ms +STATS: serializing results: 2.144098ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -391,13 +391,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: T5 : //L/node() -STATS: parsing xml document: 0.372171ms -STATS: parsing XPath query: 0.053167ms -STATS: compiling XPath query: 0.200987ms +STATS: parsing xml document: 0.380993ms +STATS: parsing XPath query: 0.056028ms +STATS: compiling XPath query: 0.200033ms STATS: Query: /descendant-or-self::node()/child::L/child::node() STATS: Automaton: -STATS: evaluating query: 2.104998ms -STATS: serializing results: 1.624107ms +STATS: evaluating query: 2.035141ms +STATS: serializing results: 1.604080ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -405,13 +405,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: T6 : //L/N -STATS: parsing xml document: 0.363827ms -STATS: parsing XPath query: 0.041962ms -STATS: compiling XPath query: 0.200987ms +STATS: parsing xml document: 0.368834ms +STATS: parsing XPath query: 0.048161ms +STATS: compiling XPath query: 0.205040ms STATS: Query: /descendant-or-self::node()/child::L/child::N STATS: Automaton: -STATS: evaluating query: 2.289057ms -STATS: serializing results: 1.558065ms +STATS: evaluating query: 2.115011ms +STATS: serializing results: 1.475811ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 819 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -419,13 +419,13 @@ STATS: cache4: length: 952, used: 133, occupation: 0.139706 Diff: ok ------------------------------------------- Query: T7 : //L/* -STATS: parsing xml document: 0.360012ms -STATS: parsing XPath query: 0.042915ms -STATS: compiling XPath query: 0.295162ms +STATS: parsing xml document: 0.386000ms +STATS: parsing XPath query: 0.040054ms +STATS: compiling XPath query: 0.193834ms STATS: Query: /descendant-or-self::node()/child::L/child::* STATS: Automaton: -STATS: evaluating query: 2.148151ms -STATS: serializing results: 1.518011ms +STATS: evaluating query: 2.058029ms +STATS: serializing results: 1.773119ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 809 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -433,13 +433,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905 Diff: ok ------------------------------------------- Query: O1 : //*[child::* and preceding::Q] -STATS: parsing xml document: 0.401974ms -STATS: parsing XPath query: 0.054121ms -STATS: compiling XPath query: 0.253916ms +STATS: parsing xml document: 0.367880ms +STATS: parsing XPath query: 0.056028ms +STATS: compiling XPath query: 0.261068ms STATS: Query: /descendant-or-self::node()/child::*[ child::* and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ] STATS: Automaton: -STATS: evaluating query: 6.214142ms -STATS: serializing results: 1.968861ms +STATS: evaluating query: 5.534887ms +STATS: serializing results: 1.616001ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -447,13 +447,13 @@ STATS: cache4: length: 2090, used: 217, occupation: 0.103828 Diff: ok ------------------------------------------- Query: O2 : //*[not(child::*) and preceding::Q] -STATS: parsing xml document: 0.370026ms -STATS: parsing XPath query: 0.063896ms -STATS: compiling XPath query: 0.282049ms +STATS: parsing xml document: 0.366926ms +STATS: parsing XPath query: 0.066042ms +STATS: compiling XPath query: 0.269890ms STATS: Query: /descendant-or-self::node()/child::*[ not(child::*) and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ] STATS: Automaton: -STATS: evaluating query: 5.774021ms -STATS: serializing results: 1.709938ms +STATS: evaluating query: 5.399942ms +STATS: serializing results: 1.590014ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 @@ -461,13 +461,13 @@ STATS: cache4: length: 2090, used: 217, occupation: 0.103828 Diff: ok ------------------------------------------- Query: O3 : //*[preceding::L or following::L] -STATS: parsing xml document: 0.369072ms -STATS: parsing XPath query: 0.078917ms -STATS: compiling XPath query: 0.324965ms +STATS: parsing xml document: 0.382900ms +STATS: parsing XPath query: 0.059843ms +STATS: compiling XPath query: 0.327826ms STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L or ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ] STATS: Automaton: -STATS: evaluating query: 11.293888ms -STATS: serializing results: 2.145052ms +STATS: evaluating query: 10.667086ms +STATS: serializing results: 2.055883ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 610 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -475,13 +475,13 @@ STATS: cache4: length: 778, used: 168, occupation: 0.215938 Diff: ok ------------------------------------------- Query: O4 : //L/ancestor::* | //L/descendant::* -STATS: parsing xml document: 0.369787ms -STATS: parsing XPath query: 0.051975ms -STATS: compiling XPath query: 0.379086ms +STATS: parsing xml document: 0.379086ms +STATS: parsing XPath query: 0.050068ms +STATS: compiling XPath query: 0.426054ms STATS: Query: /descendant-or-self::node()/child::L/ancestor::* | /descendant-or-self::node()/child::L/descendant::* STATS: Automaton: -STATS: evaluating query: 6.983995ms -STATS: serializing results: 2.542019ms +STATS: evaluating query: 7.055044ms +STATS: serializing results: 2.132177ms STATS: 1 iterations STATS: automaton 0, cache2: 70 entries, cache6: 2345 entries STATS: cache2: length: 105, used: 35, occupation: 0.333333 diff --git a/tests/comments00.xml.summary b/tests/comments00.xml.summary index 920569b..b89aec9 100644 --- a/tests/comments00.xml.summary +++ b/tests/comments00.xml.summary @@ -1,11 +1,11 @@ Query: C0 : /descendant::comment() -STATS: parsing xml document: 0.123978ms -STATS: parsing XPath query: 0.059843ms -STATS: compiling XPath query: 0.094175ms +STATS: parsing xml document: 0.129938ms +STATS: parsing XPath query: 0.058889ms +STATS: compiling XPath query: 0.087976ms STATS: Query: /descendant::comment() STATS: Automaton: -STATS: evaluating query: 0.081062ms -STATS: serializing results: 1.522064ms +STATS: evaluating query: 0.078201ms +STATS: serializing results: 1.384020ms STATS: 1 iterations STATS: automaton 0, cache2: 6 entries, cache6: 18 entries STATS: cache2: length: 9, used: 3, occupation: 0.333333 diff --git a/tests/xmark_small.xml.summary b/tests/xmark_small.xml.summary index b3daa4f..036dc7a 100644 --- a/tests/xmark_small.xml.summary +++ b/tests/xmark_small.xml.summary @@ -1,11 +1,11 @@ Query: A1 : /site/closed_auctions/closed_auction/annotation/description/text/keyword -STATS: parsing xml document: 188.066959ms -STATS: parsing XPath query: 0.082970ms -STATS: compiling XPath query: 3.010988ms +STATS: parsing xml document: 190.551996ms +STATS: parsing XPath query: 0.097036ms +STATS: compiling XPath query: 0.280142ms STATS: Query: /child::site/child::closed_auctions/child::closed_auction/child::annotation/child::description/child::text/child::keyword STATS: Automaton: -STATS: evaluating query: 109.679937ms -STATS: serializing results: 3.473043ms +STATS: evaluating query: 108.064890ms +STATS: serializing results: 3.912926ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 3149 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -13,13 +13,13 @@ STATS: cache4: length: 3464, used: 315, occupation: 0.090935 Diff: ok ------------------------------------------- Query: A2 : //closed_auction//keyword -STATS: parsing xml document: 189.096928ms -STATS: parsing XPath query: 0.035048ms -STATS: compiling XPath query: 2.774000ms +STATS: parsing xml document: 197.270155ms +STATS: parsing XPath query: 0.055075ms +STATS: compiling XPath query: 0.095129ms STATS: Query: /descendant-or-self::node()/child::closed_auction/descendant-or-self::node()/child::keyword STATS: Automaton: -STATS: evaluating query: 130.786896ms -STATS: serializing results: 6.608963ms +STATS: evaluating query: 123.884916ms +STATS: serializing results: 6.531000ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 2681 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -27,13 +27,13 @@ STATS: cache4: length: 2915, used: 234, occupation: 0.080274 Diff: ok ------------------------------------------- Query: A3 : /site/closed_auctions/closed_auction//keyword -STATS: parsing xml document: 185.206890ms -STATS: parsing XPath query: 0.056028ms -STATS: compiling XPath query: 2.818108ms +STATS: parsing xml document: 192.286968ms +STATS: parsing XPath query: 0.070095ms +STATS: compiling XPath query: 0.154018ms STATS: Query: /child::site/child::closed_auctions/child::closed_auction/descendant-or-self::node()/child::keyword STATS: Automaton: -STATS: evaluating query: 118.218184ms -STATS: serializing results: 6.602049ms +STATS: evaluating query: 122.761011ms +STATS: serializing results: 6.680965ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 3277 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -41,13 +41,13 @@ STATS: cache4: length: 3555, used: 278, occupation: 0.078200 Diff: ok ------------------------------------------- Query: A4 : /site/closed_auctions/closed_auction[annotation/description/text/keyword]/date -STATS: parsing xml document: 183.023930ms -STATS: parsing XPath query: 0.104189ms -STATS: compiling XPath query: 2.968073ms +STATS: parsing xml document: 190.771103ms +STATS: parsing XPath query: 0.141859ms +STATS: compiling XPath query: 0.144005ms STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ child::annotation/child::description/child::text/child::keyword ]/child::date STATS: Automaton: -STATS: evaluating query: 158.648968ms -STATS: serializing results: 1.986980ms +STATS: evaluating query: 164.588928ms +STATS: serializing results: 2.087116ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 1324 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -55,13 +55,13 @@ STATS: cache4: length: 1501, used: 177, occupation: 0.117921 Diff: ok ------------------------------------------- Query: A5 : /site/closed_auctions/closed_auction[descendant::keyword]/date -STATS: parsing xml document: 191.606045ms -STATS: parsing XPath query: 0.076056ms -STATS: compiling XPath query: 2.912998ms +STATS: parsing xml document: 193.598032ms +STATS: parsing XPath query: 0.081062ms +STATS: compiling XPath query: 0.144958ms STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ descendant::keyword ]/child::date STATS: Automaton: -STATS: evaluating query: 161.002159ms -STATS: serializing results: 2.372026ms +STATS: evaluating query: 162.427902ms +STATS: serializing results: 2.307177ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 1170 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -69,13 +69,13 @@ STATS: cache4: length: 1328, used: 158, occupation: 0.118976 Diff: ok ------------------------------------------- Query: A6 : /site/people/person[profile/gender and profile/age]/name -STATS: parsing xml document: 184.432983ms -STATS: parsing XPath query: 0.099897ms -STATS: compiling XPath query: 2.846003ms +STATS: parsing xml document: 191.087008ms +STATS: parsing XPath query: 0.101089ms +STATS: compiling XPath query: 0.145912ms STATS: Query: /child::site/child::people/child::person[ child::profile/child::gender and child::profile/child::age ]/child::name STATS: Automaton: -STATS: evaluating query: 158.978224ms -STATS: serializing results: 2.426863ms +STATS: evaluating query: 161.004066ms +STATS: serializing results: 2.367020ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 2174 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -83,13 +83,13 @@ STATS: cache4: length: 2385, used: 211, occupation: 0.088470 Diff: ok ------------------------------------------- Query: A7 : /site/people/person[phone or homepage]/name -STATS: parsing xml document: 191.473007ms -STATS: parsing XPath query: 0.087023ms -STATS: compiling XPath query: 3.005981ms +STATS: parsing xml document: 188.372850ms +STATS: parsing XPath query: 0.087976ms +STATS: compiling XPath query: 0.148058ms STATS: Query: /child::site/child::people/child::person[ child::phone or child::homepage ]/child::name STATS: Automaton: -STATS: evaluating query: 155.133009ms -STATS: serializing results: 4.827976ms +STATS: evaluating query: 160.624027ms +STATS: serializing results: 4.969120ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 1728 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -97,13 +97,13 @@ STATS: cache4: length: 1927, used: 199, occupation: 0.103269 Diff: ok ------------------------------------------- Query: A8 : /site/people/person[address and (phone or homepage) and (creditcard or profile)]/name -STATS: parsing xml document: 182.379961ms -STATS: parsing XPath query: 0.100136ms -STATS: compiling XPath query: 2.874136ms +STATS: parsing xml document: 194.225073ms +STATS: parsing XPath query: 0.120163ms +STATS: compiling XPath query: 0.150919ms STATS: Query: /child::site/child::people/child::person[ child::address and (child::phone or child::homepage) and (child::creditcard or child::profile) ]/child::name STATS: Automaton: -STATS: evaluating query: 164.626122ms -STATS: serializing results: 3.145933ms +STATS: evaluating query: 170.377016ms +STATS: serializing results: 3.077030ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 9331 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -111,13 +111,13 @@ STATS: cache4: length: 10253, used: 922, occupation: 0.089925 Diff: ok ------------------------------------------- Query: B1 : /site/regions/*/item[parent::namerica or parent::samerica]/name -STATS: parsing xml document: 193.360090ms -STATS: parsing XPath query: 0.061989ms -STATS: compiling XPath query: 3.045082ms +STATS: parsing xml document: 195.889950ms +STATS: parsing XPath query: 0.098944ms +STATS: compiling XPath query: 0.180960ms STATS: Query: /child::site/child::regions/child::*/child::item[ parent::namerica or parent::samerica ]/child::name STATS: Automaton: -STATS: evaluating query: 117.424965ms -STATS: serializing results: 3.699064ms +STATS: evaluating query: 109.380960ms +STATS: serializing results: 3.566980ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 3466 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -125,13 +125,13 @@ STATS: cache4: length: 3760, used: 294, occupation: 0.078191 Diff: ok ------------------------------------------- Query: B2 : //keyword/ancestor::listitem/text/keyword -STATS: parsing xml document: 194.656134ms -STATS: parsing XPath query: 0.077963ms -STATS: compiling XPath query: 2.819061ms +STATS: parsing xml document: 193.809032ms +STATS: parsing XPath query: 0.082970ms +STATS: compiling XPath query: 0.152111ms STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::listitem/child::text/child::keyword STATS: Automaton: -STATS: evaluating query: 185.279131ms -STATS: serializing results: 13.365030ms +STATS: evaluating query: 181.705952ms +STATS: serializing results: 13.277054ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 2331 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -139,13 +139,13 @@ STATS: cache4: length: 2619, used: 288, occupation: 0.109966 Diff: ok ------------------------------------------- Query: B3 : /site/open_auctions/open_auction/bidder[following-sibling::bidder] -STATS: parsing xml document: 188.459873ms -STATS: parsing XPath query: 0.063896ms -STATS: compiling XPath query: 2.804995ms +STATS: parsing xml document: 189.718962ms +STATS: parsing XPath query: 0.041008ms +STATS: compiling XPath query: 0.104904ms STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ following-sibling::bidder ] STATS: Automaton: -STATS: evaluating query: 116.722822ms -STATS: serializing results: 31.981945ms +STATS: evaluating query: 121.159077ms +STATS: serializing results: 31.509876ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 2871 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -153,13 +153,13 @@ STATS: cache4: length: 3131, used: 260, occupation: 0.083041 Diff: ok ------------------------------------------- Query: B4 : /site/open_auctions/open_auction/bidder[preceding-sibling::bidder] -STATS: parsing xml document: 193.113804ms -STATS: parsing XPath query: 0.078917ms -STATS: compiling XPath query: 2.804041ms +STATS: parsing xml document: 192.174911ms +STATS: parsing XPath query: 0.063896ms +STATS: compiling XPath query: 0.113964ms STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ preceding-sibling::bidder ] STATS: Automaton: -STATS: evaluating query: 109.422922ms -STATS: serializing results: 31.900167ms +STATS: evaluating query: 114.510059ms +STATS: serializing results: 31.508923ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 2282 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -167,13 +167,13 @@ STATS: cache4: length: 2507, used: 225, occupation: 0.089749 Diff: ok ------------------------------------------- Query: B5 : /site/regions/*/item[following::item]/name -STATS: parsing xml document: 186.527967ms -STATS: parsing XPath query: 0.079870ms -STATS: compiling XPath query: 3.057957ms +STATS: parsing xml document: 188.220024ms +STATS: parsing XPath query: 0.044107ms +STATS: compiling XPath query: 0.168085ms STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::item ]/child::name STATS: Automaton: -STATS: evaluating query: 173.794985ms -STATS: serializing results: 5.778074ms +STATS: evaluating query: 177.798986ms +STATS: serializing results: 5.649805ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 1992 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -181,13 +181,13 @@ STATS: cache4: length: 2302, used: 310, occupation: 0.134666 Diff: ok ------------------------------------------- Query: B6 : /site/regions/*/item[preceding::item]/name -STATS: parsing xml document: 187.946796ms -STATS: parsing XPath query: 0.082970ms -STATS: compiling XPath query: 2.902031ms +STATS: parsing xml document: 178.910017ms +STATS: parsing XPath query: 0.083923ms +STATS: compiling XPath query: 0.180960ms STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::item ]/child::name STATS: Automaton: -STATS: evaluating query: 127.434969ms -STATS: serializing results: 5.630016ms +STATS: evaluating query: 128.618956ms +STATS: serializing results: 6.258965ms STATS: 1 iterations STATS: automaton 0, cache2: 170 entries, cache6: 4419 entries STATS: cache2: length: 255, used: 85, occupation: 0.333333 @@ -195,13 +195,13 @@ STATS: cache4: length: 4800, used: 381, occupation: 0.079375 Diff: ok ------------------------------------------- Query: B7 : //person[profile/@income]/name -STATS: parsing xml document: 184.038877ms -STATS: parsing XPath query: 0.066042ms -STATS: compiling XPath query: 2.686024ms +STATS: parsing xml document: 189.343929ms +STATS: parsing XPath query: 0.080824ms +STATS: compiling XPath query: 0.107050ms STATS: Query: /descendant-or-self::node()/child::person[ child::profile/attribute::@income ]/child::name STATS: Automaton: -STATS: evaluating query: 165.220976ms -STATS: serializing results: 3.939152ms +STATS: evaluating query: 169.734955ms +STATS: serializing results: 3.911018ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 1238 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -209,13 +209,13 @@ STATS: cache4: length: 1349, used: 111, occupation: 0.082283 Diff: ok ------------------------------------------- Query: B8 : /site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval -STATS: parsing xml document: 187.812090ms -STATS: parsing XPath query: 0.101089ms -STATS: compiling XPath query: 2.710104ms +STATS: parsing xml document: 190.890074ms +STATS: parsing XPath query: 0.103951ms +STATS: compiling XPath query: 0.152826ms STATS: Query: /child::site/child::open_auctions/child::open_auction[ child::bidder and not(child::bidder/preceding-sibling::bidder) ]/child::interval STATS: Automaton: -STATS: evaluating query: 157.864809ms -STATS: serializing results: 2.645969ms +STATS: evaluating query: 163.990021ms +STATS: serializing results: 2.565861ms STATS: 2 iterations STATS: automaton 0, cache2: 0 entries, cache6: 1052 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -223,13 +223,13 @@ STATS: cache4: length: 1229, used: 177, occupation: 0.144020 Diff: ok ------------------------------------------- Query: B9 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval -STATS: parsing xml document: 190.474033ms -STATS: parsing XPath query: 0.148058ms -STATS: compiling XPath query: 3.069878ms +STATS: parsing xml document: 190.903187ms +STATS: parsing XPath query: 0.133038ms +STATS: compiling XPath query: 0.355959ms STATS: Query: /child::site/child::open_auctions/child::open_auction[ not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder) or child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval STATS: Automaton: -STATS: evaluating query: 242.839098ms -STATS: serializing results: 6.402969ms +STATS: evaluating query: 245.428085ms +STATS: serializing results: 6.310940ms STATS: 3 iterations STATS: automaton 0, cache2: 0 entries, cache6: 786 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -237,13 +237,13 @@ STATS: cache4: length: 976, used: 190, occupation: 0.194672 Diff: ok ------------------------------------------- Query: B10 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval -STATS: parsing xml document: 187.290192ms -STATS: parsing XPath query: 0.123024ms -STATS: compiling XPath query: 3.057957ms +STATS: parsing xml document: 192.868948ms +STATS: parsing XPath query: 0.150204ms +STATS: compiling XPath query: 0.355959ms STATS: Query: /child::site/child::open_auctions/child::open_auction[ (not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder)) and child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval STATS: Automaton: -STATS: evaluating query: 238.831997ms -STATS: serializing results: 1.582861ms +STATS: evaluating query: 248.049021ms +STATS: serializing results: 1.506090ms STATS: 3 iterations STATS: automaton 0, cache2: 0 entries, cache6: 827 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -251,13 +251,13 @@ STATS: cache4: length: 1000, used: 173, occupation: 0.173000 Diff: ok ------------------------------------------- Query: B11 : //open_auction/bidder/../bidder/../bidder/../interval -STATS: parsing xml document: 184.998989ms -STATS: parsing XPath query: 0.063181ms -STATS: compiling XPath query: 2.854109ms +STATS: parsing xml document: 187.057972ms +STATS: parsing XPath query: 0.074148ms +STATS: compiling XPath query: 0.242949ms STATS: Query: /descendant-or-self::node()/child::open_auction/child::bidder/parent::node()/child::bidder/parent::node()/child::bidder/parent::node()/child::interval STATS: Automaton: -STATS: evaluating query: 264.686108ms -STATS: serializing results: 5.999088ms +STATS: evaluating query: 284.152985ms +STATS: serializing results: 5.913019ms STATS: 4 iterations STATS: automaton 0, cache2: 0 entries, cache6: 598 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -265,13 +265,13 @@ STATS: cache4: length: 708, used: 110, occupation: 0.155367 Diff: ok ------------------------------------------- Query: B12 : //item/@id/../@id/../@id/../@id/../name -STATS: parsing xml document: 181.235075ms -STATS: parsing XPath query: 0.097990ms -STATS: compiling XPath query: 3.005028ms +STATS: parsing xml document: 189.946890ms +STATS: parsing XPath query: 0.078917ms +STATS: compiling XPath query: 0.353098ms STATS: Query: /descendant-or-self::node()/child::item/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/child::name STATS: Automaton: -STATS: evaluating query: 324.455023ms -STATS: serializing results: 5.921125ms +STATS: evaluating query: 339.267015ms +STATS: serializing results: 5.449057ms STATS: 5 iterations STATS: automaton 0, cache2: 0 entries, cache6: 870 entries STATS: cache2: length: 0, used: 0, occupation: -nan @@ -279,13 +279,13 @@ STATS: cache4: length: 993, used: 123, occupation: 0.123867 Diff: ok ------------------------------------------- Query: B13 : //keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword -STATS: parsing xml document: 185.913086ms -STATS: parsing XPath query: 0.092030ms -STATS: compiling XPath query: 3.149986ms +STATS: parsing xml document: 193.133831ms +STATS: parsing XPath query: 0.099897ms +STATS: compiling XPath query: 0.231981ms STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword STATS: Automaton: -STATS: evaluating query: 278.827190ms -STATS: serializing results: 14.353991ms +STATS: evaluating query: 285.151958ms +STATS: serializing results: 14.261007ms STATS: 4 iterations STATS: automaton 0, cache2: 0 entries, cache6: 2671 entries STATS: cache2: length: 0, used: 0, occupation: -nan diff --git a/tools/add_onclick.sh b/tools/add_onclick.sh index 89ba0f7..98028a2 100755 --- a/tools/add_onclick.sh +++ b/tools/add_onclick.sh @@ -1,3 +1,2 @@ #!/bin/sh - cat "$1" | sed -e "s/id=\\(\"node[0-9]*\"\\)/id=\\1 onclick='activate(\\1);' /" diff --git a/tools/do_jaxp.sh b/tools/do_jaxp.sh index 7208ae1..c56141d 100755 --- a/tools/do_jaxp.sh +++ b/tools/do_jaxp.sh @@ -21,5 +21,5 @@ mkdir -p "$RESULTS" cat "$QUERIES" | grep -v '^#' | while read qname q do echo "Computing $q" - java -cp _build/tools XPathEval "$FILE" "$q" > "$RESULTS"/"$qname"_jaxp.xml 2> "$RESULTS"/"$qname"_jaxp.log + java -cp tools XPathEval "$FILE" "$q" > "$RESULTS"/"$qname"_jaxp.xml 2> "$RESULTS"/"$qname"_jaxp.log done -- 2.17.1