X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FBenchmark.h;h=dbe12145ef79bd4c5dde046c6efa2bf4fcf1e1fe;hb=24f2ac23ead3707b28a494afc5f55ed50bbfccaf;hp=cf11ca75b20b02ca67da3dfbaa4fdf198d3b14de;hpb=e0b75e77cc224d3caffbb717342873c858e893fe;p=folly.git diff --git a/folly/Benchmark.h b/folly/Benchmark.h index cf11ca75..dbe12145 100644 --- a/folly/Benchmark.h +++ b/folly/Benchmark.h @@ -55,6 +55,19 @@ namespace detail { using TimeIterPair = std::pair; +using BenchmarkFun = std::function; + +struct BenchmarkRegistration { + std::string file; + std::string name; + BenchmarkFun func; +}; + +struct BenchmarkResult { + std::string file; + std::string name; + double timeInNs; +}; /** * Adds a benchmark wrapped in a std::function. Only used @@ -237,7 +250,7 @@ struct DoNotOptimizeAwayNeedsIndirect { constexpr static bool value = !folly::IsTriviallyCopyable::value || sizeof(Decayed) > sizeof(long) || std::is_pointer::value; }; -} // detail namespace +} // namespace detail template auto doNotOptimizeAway(const T& datum) -> typename std::enable_if< @@ -280,6 +293,20 @@ auto makeUnpredictable(T& datum) -> typename std::enable_if< #endif +struct dynamic; + +void benchmarkResultsToDynamic( + const std::vector& data, + dynamic&); + +void benchmarkResultsFromDynamic( + const dynamic&, + std::vector&); + +void printResultComparison( + const std::vector& base, + const std::vector& test); + } // namespace folly /**