mirror of
https://github.com/google/benchmark.git
synced 2024-11-28 15:34:33 +00:00
376ebc2635
* 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
20 lines
793 B
CMake
20 lines
793 B
CMake
# If successful, the following variables will be defined:
|
|
# HAVE_LIBPFM.
|
|
# Set BENCHMARK_ENABLE_LIBPFM to 0 to disable, regardless of libpfm presence.
|
|
include(CheckIncludeFile)
|
|
include(CheckLibraryExists)
|
|
enable_language(C)
|
|
|
|
check_library_exists(libpfm.a pfm_initialize "" HAVE_LIBPFM_INITIALIZE)
|
|
if(HAVE_LIBPFM_INITIALIZE)
|
|
check_include_file(perfmon/perf_event.h HAVE_PERFMON_PERF_EVENT_H)
|
|
check_include_file(perfmon/pfmlib.h HAVE_PERFMON_PFMLIB_H)
|
|
check_include_file(perfmon/pfmlib_perf_event.h HAVE_PERFMON_PFMLIB_PERF_EVENT_H)
|
|
if(HAVE_PERFMON_PERF_EVENT_H AND HAVE_PERFMON_PFMLIB_H AND HAVE_PERFMON_PFMLIB_PERF_EVENT_H)
|
|
message("Using Perf Counters.")
|
|
set(HAVE_LIBPFM 1)
|
|
endif()
|
|
else()
|
|
message("Perf Counters support requested, but was unable to find libpfm.")
|
|
endif()
|