benchmark/test
Mircea Trofin 376ebc2635
Support optional, user-directed collection of performance counters (#1114)
* Support optional, user-directed collection of performance counters

The patch allows an engineer wishing to drill into the root causes
of a regression, for example. Currently, only single threaded runs
are supported. The feature is a build-time opt in, and then a runtime
opt in.

The engineer may run the benchmark executable, passing a list of
performance counter names (using libpfm's naming scheme) at the
command line. The counter values will then be collected and reported
back as UserCounters.

This is different from #240 in that it is a benchmark user opt-in, and
the counter collection is transparent to the benchmark.

Currently, this is only supported on platforms where libpfm is
supported.

libpfm: http://perfmon2.sourceforge.net/

* 'Use' values param in Snapshot when BENCHMARK_OS_WINDOWS

This is to avoid unused parameter warning-as-error

* Added missing include for <vector> in perf_counters.cc

* Moved doc to docs

* Added license blurbs
2021-04-28 09:25:29 +01:00
..
AssemblyTests.cmake split_list is not defined for assembly tests (#595) 2018-05-14 15:02:49 +01:00
BUILD Switch to Starlark for C++ rules. (#887) 2019-10-08 11:09:51 +01:00
CMakeLists.txt Support optional, user-directed collection of performance counters (#1114) 2021-04-28 09:25:29 +01:00
args_product_test.cc Add CartesianProduct with associated test (#1029) 2020-08-25 13:47:44 +01:00
basic_test.cc Use fewer ramp up repetitions when KeepRunningBatch is used (#1113) 2021-04-20 07:16:05 +01:00
benchmark_gtest.cc Fix Range when starting at zero (#1073) 2020-11-26 11:12:45 +00:00
benchmark_name_gtest.cc BENCHMARK_CAPTURE() and Complexity() - naming problem (#761) 2019-03-17 16:38:51 +03:00
benchmark_test.cc Allow AddRange to work with int64_t. (#548) 2018-04-03 23:12:47 +01:00
clobber_memory_assembly_test.cc Add tests to verify assembler output -- Fix DoNotOptimize. (#530) 2018-03-23 16:10:47 -06:00
commandlineflags_gtest.cc Remove "BENCHMARK_" prefix from env var version of command line flags (#997) 2020-08-18 10:02:20 +01:00
complexity_test.cc Bugfix/wsl selftest fixes. Fixes #839 (#843) 2019-07-27 19:02:31 +03:00
cxx03_test.cc Iteration counts should be `uint64_t` globally. (#817) 2019-05-13 12:33:11 +03:00
diagnostics_test.cc Refactor most usages of KeepRunning to use the perfered ranged-for. (#459) 2017-10-17 12:17:02 -06:00
display_aggregates_only_test.cc Track two more details about runs - the aggregate name, and run name. (#675) 2018-09-13 15:08:15 +03:00
donotoptimize_assembly_test.cc Add tests to verify assembler output -- Fix DoNotOptimize. (#530) 2018-03-23 16:10:47 -06:00
donotoptimize_test.cc Fix uninitialized warning (#560) 2018-03-25 20:05:31 +01:00
filter_test.cc Refactor most usages of KeepRunning to use the perfered ranged-for. (#459) 2017-10-17 12:17:02 -06:00
fixture_test.cc Added support for macro expansion in benchmark names (#1054) 2020-11-19 13:50:30 +00:00
internal_threading_test.cc Add process_time for better OpenMP and user-managed thread timing 2019-04-09 13:01:33 +01:00
link_main_test.cc Add benchmark_main target. (#601) 2018-05-25 11:18:58 +01:00
map_test.cc Allow AddRange to work with int64_t. (#548) 2018-04-03 23:12:47 +01:00
memory_manager_test.cc [JSON] add threads and repetitions to the json output (#748) 2019-03-26 09:53:07 +00:00
multiple_ranges_test.cc Negative ranges #762 (#787) 2019-03-26 10:50:53 +00:00
options_test.cc Add 'seconds' time unit (#1076) 2020-12-21 20:15:58 +03:00
output_test.h *Display* aggregates only. (#665) 2018-09-12 16:26:17 +03:00
output_test_helper.cc Add 'seconds' time unit (#1076) 2020-12-21 20:15:58 +03:00
perf_counters_gtest.cc Support optional, user-directed collection of performance counters (#1114) 2021-04-28 09:25:29 +01:00
perf_counters_test.cc Support optional, user-directed collection of performance counters (#1114) 2021-04-28 09:25:29 +01:00
register_benchmark_test.cc Track two more details about runs - the aggregate name, and run name. (#675) 2018-09-13 15:08:15 +03:00
report_aggregates_only_test.cc Track two more details about runs - the aggregate name, and run name. (#675) 2018-09-13 15:08:15 +03:00
reporter_output_test.cc Implement custom benchmark name (#1107) 2021-03-30 16:43:03 +03:00
skip_with_error_test.cc Relax CHECK condition in benchmark_runner.cc (#938) 2020-02-21 17:53:25 +03:00
state_assembly_test.cc Iteration counts should be `uint64_t` globally. (#817) 2019-05-13 12:33:11 +03:00
statistics_gtest.cc Fix type conversion warnings. (#951) 2020-04-06 13:52:09 +01:00
string_util_gtest.cc Support optional, user-directed collection of performance counters (#1114) 2021-04-28 09:25:29 +01:00
templated_fixture_test.cc (clang-)format all the things (#610) 2018-06-01 11:14:19 +01:00
user_counters_tabular_test.cc Bugfix/wsl selftest fixes. Fixes #839 (#843) 2019-07-27 19:02:31 +03:00
user_counters_test.cc Custom user counters: add invert modifier. (#850) 2019-08-12 17:47:46 +03:00
user_counters_thousands_test.cc [JSON] add threads and repetitions to the json output (#748) 2019-03-26 09:53:07 +00:00