Skip to content

Commit ede23c9

Browse files
author
Jérôme FERET
committed
print efficiency
1 parent 684a0f1 commit ede23c9

4 files changed

Lines changed: 40 additions & 14 deletions

File tree

core/KaSa_rep/main/KaSaIncremental.ml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ let main () =
8888
state
8989
in
9090
let module KaSaUtil = KaSaUtil.KaSaUtil (Export_to_KaSa) in
91-
let print_result parameters state print_analysis start_time =
91+
let print_result parameters state print_analysis =
9292
let state, _ = Export_to_KaSa.get_reachability_analysis state in
9393
let state =
9494
if print_analysis then
@@ -98,12 +98,14 @@ let main () =
9898
in
9999
let error = Export_to_KaSa.get_errors state in
100100
let () = Exception.print parameters error in
101-
let () = KaSaUtil.print_efficiency parameters state start_time in
102101
state
103102
in
104-
let state = print_result parameters state false initial_start_time in
103+
let state = print_result parameters state false in
105104
let log = Remanent_parameters.get_logger parameters in
106-
let rec loop state =
105+
let rec loop_time state start_time =
106+
Loggers.fprintf log "This computation step took ";
107+
KaSaUtil.print_only_timing parameters start_time;
108+
Loggers.print_newline log;
107109
Loggers.fprintf log "> ";
108110
Loggers.flush_logger log;
109111
let state =
@@ -115,7 +117,7 @@ let main () =
115117
| "quit" | "q" -> ()
116118
| "help" | "h" ->
117119
Loggers.fprintf log "%s" help_message;
118-
loop state
120+
loop state
119121
| "print rules" | "p rules" ->
120122
let state, compilation = Export_to_KaSa.get_compilation state in
121123
let () =
@@ -131,13 +133,11 @@ let main () =
131133
let () = Exception.print parameters error in
132134
loop state
133135
| "print result" | "p result" | "p" ->
134-
let start_time = Sys.time () in
135-
let state = print_result parameters state true start_time in
136+
let state = print_result parameters state true in
136137
loop state
137138
| input
138139
when String.length input > 12 && String.sub input 0 12 = "update file "
139140
->
140-
let start_time = Sys.time () in
141141
let l = String.split_on_char ' ' input in
142142
let do_not_restart_fixpoint_computation =
143143
match !Config.do_restart_fixpoint_iterations with
@@ -168,10 +168,9 @@ let main () =
168168
in
169169
Export_to_KaSa.set_errors error state
170170
in
171-
let state = print_result parameters state false start_time in
171+
let state = print_result parameters state false in
172172
loop state
173173
| input ->
174-
let start_time = Sys.time () in
175174
let success, state =
176175
match parse_input input with
177176
| Enable (false, i) ->
@@ -208,7 +207,7 @@ let main () =
208207
in
209208
let state =
210209
if success then
211-
print_result parameters state true start_time
210+
print_result parameters state true
212211
else (
213212
let error = Export_to_KaSa.get_errors state in
214213
let () = Exception.print parameters error in
@@ -217,7 +216,7 @@ let main () =
217216
in
218217
loop state
219218
with End_of_file -> ()
220-
in
221-
loop state
219+
and loop state = loop_time state (Sys.time ())
220+
in loop_time state initial_start_time
222221

223222
let () = main ()

core/KaSa_rep/main/KaSaUtil.ml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,28 @@
11
module KaSaUtil (Export_to_KaSa : Export_to_KaSa.Type) = struct
2+
let print_only_timing parameters start_time =
3+
if Remanent_parameters.get_print_efficiency parameters then
4+
let end_time = Sys.time () in
5+
let cpu_time = end_time -. start_time in
6+
let () =
7+
if cpu_time <= 1. then
8+
Loggers.fprintf
9+
(Remanent_parameters.get_logger parameters)
10+
"%0.6f s." cpu_time
11+
else if cpu_time <= 10. then
12+
Loggers.fprintf
13+
(Remanent_parameters.get_logger parameters)
14+
"%.6f s." cpu_time
15+
else if cpu_time <= 1000. then
16+
Loggers.fprintf
17+
(Remanent_parameters.get_logger parameters)
18+
"%3.3f s." cpu_time
19+
else
20+
Loggers.fprintf
21+
(Remanent_parameters.get_logger parameters)
22+
"%3.3g s." cpu_time
23+
in
24+
()
25+
226
let print_efficiency parameters state start_time =
327
if Remanent_parameters.get_print_efficiency parameters then (
428
let end_time = Sys.time () in

core/KaSa_rep/main/KaSaUtil.mli

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@ module KaSaUtil : functor (E : Export_to_KaSa.Type) -> sig
66

77
val print_efficiency :
88
Remanent_parameters_sig.parameters -> E.state -> float -> unit
9+
10+
val print_only_timing :
11+
Remanent_parameters_sig.parameters -> float -> unit
912
end

core/KaSa_rep/more_datastructures/int_storage.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ module Int_storage_imperatif :
155155
let error, dimension = dimension parameters error array in
156156
if dimension < size then (
157157
let error, array' = create parameters error size in
158-
let _ = Array.blit array.array 0 array'.array 0 dimension in
158+
let _ = Array.blit array.array 0 array'.array 0 (dimension+1) in
159159
error, array'
160160
) else
161161
error, { array = Array.sub array.array 0 (size + 1); size }

0 commit comments

Comments
 (0)