- 31 Jul, 2017 1 commit
-
-
Eric Fiselier authored
The benchmark library is compiled as C++11, but certain tests are compiled as C++03. When -flto is enabled GCC 5.4 and above will diagnose an ODR violation in libstdc++'s <map>. This ODR violation, although real, should likely be benign. For this reason it seems sensible to simply suppress -Wodr when building the C++03 test. This patch fixes #420 and supersede's PR #424.
-
- 25 Jul, 2017 1 commit
-
-
Roman Lebedev authored
While the percentages are displayed for both of the columns, the old/new values are only displayed for the second column, for the CPU time. And the column is not even spelled out. In cases where b->UseRealTime(); is used, this is at the very least highly confusing. So why don't we just display both the old/new for both the columns? Fixes #425
-
- 24 Jul, 2017 1 commit
-
-
Roman Lebedev authored
* Json reporter: passthrough fp, don't cast it to int; adjust tooling Json output format is generally meant for further processing using some automated tools. Thus, it makes sense not to intentionally limit the precision of the values contained in the report. As it can be seen, FormatKV() for doubles, used %.2f format, which was meant to preserve at least some of the precision. However, before that function is ever called, the doubles were already cast to the integer via RoundDouble()... This is also the case for console reporter, where it makes sense because the screen space is limited, and this reporter, however the CSV reporter does output some( decimal digits. Thus i can only conclude that the loss of the precision was not really considered, so i have decided to adjust the code of the json reporter to output the full fp precision. There can be several reasons why that is the right thing to do, the bigger the time_unit used, the greater the precision loss, so i'd say any sort of further processing (like e.g. tools/compare_bench.py does) is best done on the values with most precision. Also, that cast skewed the data away from zero, which i think may or may not result in false- positives/negatives in the output of tools/compare_bench.py * Json reporter: FormatKV(double): address review note * tools/gbench/report.py: skip benchmarks with different time units While it may be useful to teach it to operate on the measurements with different time units, which is now possible since floats are stored, and not the integers, but for now at least doing such a sanity-checking is better than providing misinformation.
-
- 14 Jul, 2017 1 commit
-
-
Dominic Hamon authored
-
- 13 Jul, 2017 1 commit
-
-
Dominic Hamon authored
-
- 06 Jul, 2017 1 commit
-
-
Tom Madams authored
Change ThreadCPUUsage to call ProcessCPUUsage if __rtems__ is defined. RTEMS real time OS doesn't support CLOCK_THREAD_CPUTIME_ID. See https://github.com/RTEMS/rtems/blob/master/cpukit/posix/src/clockgettime.c#L58-L59 Prior to this change, ThreadCPUUsage would fail when running on RTEMS with: ERROR: clock_gettime(CLOCK_THREAD_CPUTIME_ID, ...) failed
-
- 04 Jul, 2017 1 commit
-
-
Eric authored
* Make Benchmark a single header library (but not header-only) This patch refactors benchmark into a single header, to allow for slightly easier usage. The initial reason for the header split was to keep C++ library components from being included by benchmark_api.h, making that part of the library STL agnostic. However this has since changed and there seems to be little reason to separate the reporters from the rest of the library. * Fix internal_macros.h * Remove more references to macros.h
-
- 16 Jun, 2017 1 commit
-
-
Jern-Kuan Leong authored
Add definition of ${VAR} to makefiles if specified as part of cmake parameter.
-
- 14 Jun, 2017 3 commits
-
-
Eric authored
* Add ClearRegisteredBenchmark() function. Since benchmarks can be registered at runtime using the RegisterBenchmark(...) functions, it makes sense to have a ClearRegisteredBenchmarks() function too, that can be used at runtime to clear the currently registered benchmark and re-register an entirely new set. This allows users to run a set of registered benchmarks, get the output using a custom reporter, and then clear and re-register new benchmarks based on the previous results. This fixes issue #400, at least partially. * Remove unused change
-
Tim authored
This removes warnings when using CMake >= 3.3 if you have symbol visibility set.
-
- 05 Jun, 2017 1 commit
-
-
Yixuan Qiu authored
* remove unnecessary weights * use sample standard deviation * add contributor information * remove redundant code * initialize variable to eliminate compiler warning
-
- 02 Jun, 2017 1 commit
-
-
Eric authored
* Fix #342: DoNotOptimize causes compile errors on older GCC versions. DoNotOptimize uses inline assembly contraints to tell the compiler what the type of the input variable. The 'g' operand allows the input to be any register, memory, or immediate integer operand. However this constraint seems to be too weak on older GCC versions, and certain inputs will cause compile errors. This patch changes the constraint to 'X', which is documented as "any operand whatsoever is allowed". This appears to fix the issues with older GCC versions. However Clang doesn't seem to like "X", and will attempt to put the input into a register even when it can't/shouldn't; causing a compile error. However using "g" seems to work like "X" with GCC, so for this reason Clang still uses "g". * Try alternative formulation to placate GCC
-
- 23 May, 2017 1 commit
-
-
David Kruger authored
Using target_include_directories CMake will implicitly add the the necessary include paths to targets which link against the benchmark library. This is useful when the benchmark repo is included as a subdirectory in another CMake build.
-
- 22 May, 2017 2 commits
-
-
Dominic Hamon authored
-
Tushar Maheshwari authored
-
- 04 May, 2017 1 commit
-
-
Eric Fiselier authored
-
- 03 May, 2017 1 commit
-
-
Dominic Hamon authored
-
- 02 May, 2017 16 commits
-
-
Joao Paulo Magalhaes authored
This thing with the pragma ignore was getting out of hand: now MinGW (and probably GCC) was erroring too. So I chose to move the definition of IsZero() out of the anonymous namespace into benchmark.cc.
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Dominic Hamon authored
-
git://github.com/biojppm/benchmarkDominic Hamon authored
Merge branch 'test_usercounters' of git://github.com/biojppm/benchmark into biojppm-test_usercounters
-
Felix Duvallet authored
This prevents errors when additional non-timing data are present in the JSON that is loaded, for example when complexity data has been computed (see #379).
-
Joao Paulo Magalhaes authored
[ci-skip]
-
- 01 May, 2017 6 commits
-
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-
Joao Paulo Magalhaes authored
-