[libc-commits] [libc] ab57780 - [libc] Refresh benchmark progress bar when needed.

Guillaume Chatelet via libc-commits libc-commits at lists.llvm.org
Wed Jan 13 06:07:01 PST 2021


Author: Guillaume Chatelet
Date: 2021-01-13T14:06:51Z
New Revision: ab577807165c45abfbadc117125ec7275cdcc0cf

URL: https://github.com/llvm/llvm-project/commit/ab577807165c45abfbadc117125ec7275cdcc0cf
DIFF: https://github.com/llvm/llvm-project/commit/ab577807165c45abfbadc117125ec7275cdcc0cf.diff

LOG: [libc] Refresh benchmark progress bar when needed.

Added: 
    

Modified: 
    libc/benchmarks/LibcMemoryBenchmarkMain.cpp

Removed: 
    


################################################################################
diff  --git a/libc/benchmarks/LibcMemoryBenchmarkMain.cpp b/libc/benchmarks/LibcMemoryBenchmarkMain.cpp
index 99c5879397d9..770336e3205c 100644
--- a/libc/benchmarks/LibcMemoryBenchmarkMain.cpp
+++ b/libc/benchmarks/LibcMemoryBenchmarkMain.cpp
@@ -262,17 +262,21 @@ template <typename Benchmark> struct MemfunctionBenchmark : IBenchmark {
     };
   }
 
-  void reportProgress(BenchmarkStatus BS) {
+  void reportProgress() {
+    static size_t LastPercent = -1;
     const size_t TotalSteps = Study.Measurements.capacity();
     const size_t Steps = Study.Measurements.size();
     const size_t Percent = 100 * Steps / TotalSteps;
+    if (Percent == LastPercent)
+      return;
+    LastPercent = Percent;
     size_t I = 0;
     errs() << '[';
     for (; I <= Percent; ++I)
       errs() << '#';
     for (; I <= 100; ++I)
       errs() << '_';
-    errs() << "] " << Percent << "%\r";
+    errs() << "] " << Percent << '%' << '\r';
   }
 
   void runTrials(const BenchmarkOptions &Options,
@@ -283,7 +287,7 @@ template <typename Benchmark> struct MemfunctionBenchmark : IBenchmark {
     for (size_t i = 0; i < NumTrials; ++i) {
       const BenchmarkResult Result = benchmark(Options, B, B.functor());
       Study.Measurements.push_back(Result.BestGuess);
-      reportProgress(Result.TerminationStatus);
+      reportProgress();
     }
   }
 
@@ -330,6 +334,7 @@ void writeStudy(const Study &S) {
                            .concat(Output));
   json::OStream JOS(FOS);
   serializeToJson(S, JOS);
+  FOS << "\n";
 }
 
 void main() {


        


More information about the libc-commits mailing list