aboutsummaryrefslogtreecommitdiff
path: root/src/timings.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2021-11-10 12:06:36 +0000
committerGitHub <noreply@github.com>2021-11-10 12:06:36 +0000
commit5cb23725ae64731242e8d425958b0bf4dacf6025 (patch)
treeff790300e0aee092b3b8f37d27bd04bb91a2683e /src/timings.cpp
parent4a552e632696f7dd78ef86b59eedbfef25378f86 (diff)
parent8c5c45a04c2a525e048538d764cc35f44239230b (diff)
Merge pull request #1289 from Kelimion/timings-export
Add functionality to export build timings.
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