Commit ab29808a919ac5e653d297a21dca25f3e1cbf853
1 parent
d33ddb9b
Fixing timer print
Showing
1 changed file
with
12 additions
and
8 deletions
include/CLI/Timer.hpp
| @@ -54,18 +54,22 @@ public: | @@ -54,18 +54,22 @@ public: | ||
| 54 | time_point stop = clock::now(); | 54 | time_point stop = clock::now(); |
| 55 | std::chrono::duration<double, std::milli> elapsed = stop - start_; | 55 | std::chrono::duration<double, std::milli> elapsed = stop - start_; |
| 56 | double time = elapsed.count(); | 56 | double time = elapsed.count(); |
| 57 | + | ||
| 58 | + auto print_it = [](double x, std::string unit){ | ||
| 59 | + char buffer[50]; | ||
| 60 | + std::snprintf(buffer, 50, "%.5g", x); | ||
| 61 | + return buffer + std::string(" ") + unit; | ||
| 62 | + }; | ||
| 57 | 63 | ||
| 58 | // LCOV_EXCL_START | 64 | // LCOV_EXCL_START |
| 59 | - if(time < 1) | ||
| 60 | - return std::to_string(int(time*1000000)) + " ns"; | ||
| 61 | - else if(time < 10) | ||
| 62 | - return std::to_string(int(time*100) / 100.) + " ms"; | 65 | + if(time < .001) |
| 66 | + return print_it(time*1000000, "ns"); | ||
| 67 | + else if(time < 1) | ||
| 68 | + return print_it(time*1000, "us"); | ||
| 63 | else if(time < 1000) | 69 | else if(time < 1000) |
| 64 | - return std::to_string(int(time)) + " ms"; | ||
| 65 | - else if(time < 10000) | ||
| 66 | - return std::to_string(int(time*10000) / 10. ) + " s"; | 70 | + return print_it(time, "ms"); |
| 67 | else | 71 | else |
| 68 | - return std::to_string(int(time*1000)) + " s"; | 72 | + return print_it(time/1000, "s"); |
| 69 | // LCOV_EXCL_END | 73 | // LCOV_EXCL_END |
| 70 | } | 74 | } |
| 71 | 75 |