X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=main.ml;h=985a5b2fba0334288536e403a981fa8910e1e4c6;hb=d2cbab156c2b74051cf831dc3ac634aedc8f2c2f;hp=a7250a08eafd188f9b896a48549d8b2dbdf0ee8c;hpb=7489c542a7b7357a1c2bbc436d1d77c601833d3b;p=SXSI%2Fxpathcomp.git diff --git a/main.ml b/main.ml index a7250a0..985a5b2 100644 --- a/main.ml +++ b/main.ml @@ -19,7 +19,10 @@ let time f x = r ;; let total_time () = List.fold_left (+.) 0. !l;; - +let enabled_gc = Gc.get() +let disabled_gc = { Gc.get() with + Gc.max_overhead = 1000000; + Gc.space_overhead = 100 } let main v query output = let _ = Tag.init (Tree.tag_pool v) in @@ -47,7 +50,7 @@ let main v query output = let r = Tree.count v s in Printf.eprintf "Global count is %i, using " r; - if r < 60000 then begin + if r < !Options.tc_threshold then begin Printf.eprintf "TextCollection contains\nCalling global contains : "; time (Tree.init_contains v) s end @@ -58,12 +61,14 @@ let main v query output = in Printf.eprintf "Execution time %s : " (if !Options.count_only then "(counting only)" else ""); begin + let _ = Gc.full_major();Gc.compact() in + let _ = Gc.set (disabled_gc) in if !Options.count_only then let r = time ( run_count auto )v in let _ = Printf.eprintf "Number of nodes in the result set : %i\n%!" r in () else -(* let _ = Gc.set ({ Gc.get() with Gc.max_overhead = 1000000; Gc.space_overhead = 100 }) in *) + let result,rcount = time (if !Options.time then run_time auto else run auto) v in Printf.eprintf "Number of nodes in the result set : %i\n" rcount; Printf.eprintf "\n%!"; @@ -80,7 +85,8 @@ let main v query output = output_char oc '\n') result) (); end; end; - let _ = Ata.dump Format.err_formatter auto in + let _ = Gc.set enabled_gc in +(* let _ = Ata.dump Format.err_formatter auto in *) Printf.eprintf "Total running time : %fms\n%!" (total_time()) ;;