aboutsummaryrefslogtreecommitdiff
path: root/src/timings.cpp
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2021-11-09 19:50:23 +0100
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2021-11-09 19:57:55 +0100
commit05a86d5296895ead7a8e352a961815b079455a8d (patch)
tree4c7268dbcb0835e29c8ba6bbd7e81c4168bcd440 /src/timings.cpp
parent9422fd311fca75e86cd4ea949a63bddc4353d9c7 (diff)
[timings-export] Implement JSON + CSV timngs export.
Diffstat (limited to 'src/timings.cpp')
-rw-r--r--src/timings.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/timings.cpp b/src/timings.cpp
index b07bc6a8d..72abe7ea1 100644
--- a/src/timings.cpp
+++ b/src/timings.cpp
@@ -169,14 +169,19 @@ f64 time_stamp(TimeStamp const &ts, u64 freq, TimingUnit unit) {
}
}
-void timings_print_all(Timings *t, TimingUnit unit = TimingUnit_Millisecond) {
+void timings_print_all(Timings *t, TimingUnit unit = TimingUnit_Millisecond, bool timings_are_finalized = false) {
isize const SPACES_LEN = 256;
char SPACES[SPACES_LEN+1] = {0};
gb_memset(SPACES, ' ', SPACES_LEN);
-
- timings__stop_current_section(t);
- t->total.finish = time_stamp_time_now();
+ /*
+ NOTE(Jeroen): Whether we call `timings_print_all()`, then `timings_export_all()`, the other way around,
+ or just one of them, we only need to stop the clock once.
+ */
+ if (!timings_are_finalized) {
+ timings__stop_current_section(t);
+ t->total.finish = time_stamp_time_now();
+ }
isize max_len = gb_min(36, t->total.label.len);
for_array(i, t->sections) {
@@ -207,4 +212,4 @@ void timings_print_all(Timings *t, TimingUnit unit = TimingUnit_Millisecond) {
timing_unit_strings[unit],
100.0*section_time/total_time);
}
-}
+} \ No newline at end of file