1. 01 Jul, 2021 2 commits
  2. 29 Jun, 2021 1 commit
  3. 28 Jun, 2021 5 commits
  4. 24 Jun, 2021 3 commits
  5. 18 Jun, 2021 1 commit
  6. 16 Jun, 2021 1 commit
  7. 15 Jun, 2021 1 commit
  8. 09 Jun, 2021 1 commit
  9. 08 Jun, 2021 1 commit
  10. 04 Jun, 2021 1 commit
  11. 03 Jun, 2021 7 commits
    • Enable various sanitizer builds in github actions (#1167) · bdd6c447
      Dominic Hamon authored
      * Enable various sanitizer builds in github actions
      
      * try with off the shelf versions
      
      * nope
      
      * specific version?
      
      * rats
      
      * oops
      
      * remove msan for now
      
      * reorder so env is set before building libc++
    • Random interleaving of benchmark repetitions - the sequel (fixes #1051) (#1163) · fbc31405
      Roman Lebedev authored
      Inspired by the original implementation by Hai Huang @haih-g
      from https://github.com/google/benchmark/pull/1105.
      
      The original implementation had design deficiencies that
      weren't really addressable without redesign, so it was reverted.
      
      In essence, the original implementation consisted of two separateable parts:
      * reducing the amount time each repetition is run for, and symmetrically increasing repetition count
      * running the repetitions in random order
      
      While it worked fine for the usual case, it broke down when user would specify repetitions
      (it would completely ignore that request), or specified per-repetition min time (while it would
      still adjust the repetition count, it would not adjust the per-repetition time,
      leading to much greater run times)
      
      Here, like i was originally suggesting in the original review, i'm separating the features,
      and only dealing with a single one - running repetitions in random order.
      
      Now that the runs/repetitions are no longer in-order, the tooling may wish to sort the output,
      and indeed `compare.py` has been updated to do that: #1168.
    • Fix leak in test, and provide path to remove leak from library (#1169) · d17ea665
      Dominic Hamon authored
      * Fix leak in test, and provide path to remove leak from library
      
      * make doc change
    • [NFCI] Make BenchmarkRunner non-internal to it's .cpp file · 32cc6071
      Roman Lebedev authored
      Currently the lifetime of a single BenchmarkRunner is constrained
      to a RunBenchmark(), but that will have to change for interleaved
      benchmark execution, because we'll need to keep it around to not
      forget how much repetitions of an instance we've done.
    • [NFCI] RunBenchmarks(): extract FlushStreams()/Report() functions · 520573fe
      Roman Lebedev authored
      Based on original implementation by Hai Huang @haih-g in
      https://github.com/google/benchmark/pull/1105
    • compare.py: sort the results (#1168) · 6e32352c
      Roman Lebedev authored
      Currently, the tooling just keeps the whatever benchmark order
      that was present, and this is fine nowadays, but once the benchmarks
      will be optionally run interleaved, that will be rather suboptimal.
      
      So, now that i have introduced family index and per-family instance index,
      we can define an order for the benchmarks, and sort them accordingly.
      
      There is a caveat with aggregates, we assume that they are in-order,
      and hopefully we won't mess that order up..
    • Make 'complexity reports' cache per-family, not global (#1166) · 0c1da0a7
      Roman Lebedev authored
      While the current variant works, it assumes that all the instances of
      a single family will be run together, with nothing inbetween them.
      Naturally, that won't work once the runs may be interleaved.
  12. 02 Jun, 2021 4 commits
    • Introduce per-family instance index (#1165) · 80a62618
      Roman Lebedev authored
      Much like it makes sense to enumerate all the families,
      it makes sense to enumerate stuff within families.
      Alternatively, we could have a global instance index,
      but i'm not sure why that would be better.
      
      This will be useful when the benchmarks are run not in order,
      for the tools to sort the results properly.
    • Introduce "family index" field into JSON output (#1164) · 4c2e32f1
      Roman Lebedev authored
      It may be useful for those wishing to further post-process JSON results,
      but it is mainly geared towards better support for run interleaving,
      where results from the same family may not be close-by in the JSON.
      
      While we won't be able to do much about that for outputs,
      the tools can and perhaps should reorder the results to that
      at least in their output they are in proper order, not run order.
      
      Note that this only counts the families that were filtered-in,
      so if e.g. there were three families, and we filtered-out
      the second one, the two families (which were first and third)
      will have family indexes 0 and 1.
    • BenchmarkFamilies::FindBenchmarks(): correctly use std::vector<>::reserve() · e0a080d0
      Roman Lebedev authored
      It takes the whole total new capacity, not the increase.
    • Ensure that we print repetition count even when it was specified via flag… · a54ef37a
      Roman Lebedev authored
      Ensure that we print repetition count even when it was specified via flag `--benchmark_repetitions=`
  13. 01 Jun, 2021 5 commits
  14. 30 May, 2021 2 commits
  15. 28 May, 2021 1 commit
    • Removing freenode from README · 0e1255af
      Dominic Hamon authored
      It seems that by setting the /topic in freenode #googlebenchmark to point to libera I have angered the powers that be and we've been locked out of the channel. Libera it is then.
  16. 21 May, 2021 1 commit
  17. 20 May, 2021 3 commits
    • fix version recorded in releases (#1047) · a4bcd937
      Kai Germaschewski authored
      * cmake: fix handling the case where `git describe` fails
      
      * cmake: fix version recorded in releases
      
      If downloaded as a tarball release, there will be no info from git
      to determine the release, so it ends up v0.0.0. If that's the case,
      we'll now use the release specified in the project() command,
      which needs to be updated for each new release.
      
      * cmake: add `--tags` to `git describe`
      
      That way, lightweight tags will also be taken into account, which should
      never hurt, but it'll help in cases where, for some mysterious reason or
      other, annotated tags don't make it into a clone.
      
      * update releasing.md
    • Implementation of random interleaving. (#1105) · a6a738c1
      haih-g authored
      * Implementation of random interleaving. See
      http://github.com/google/benchmark/issues/1051 for the feature requests.
      
      Committer: Hai Huang (http://github.com/haih-g)
      
      On branch fr-1051
      Changes to be committed:
      modified:   include/benchmark/benchmark.h
      modified:   src/benchmark.cc
      new file:   src/benchmark_adjust_repetitions.cc
      new file:   src/benchmark_adjust_repetitions.h
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      modified:   src/benchmark_register.cc
      modified:   src/benchmark_runner.cc
      modified:   src/benchmark_runner.h
      modified:   test/CMakeLists.txt
      new file:   test/benchmark_random_interleaving_gtest.cc
      
      * Fix benchmark_random_interleaving_gtest.cc for fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      modified:   src/benchmark_runner.cc
      modified:   test/benchmark_random_interleaving_gtest.cc
      
      * Fix macos build for fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      modified:   src/benchmark_runner.cc
      
      * Fix macos and windows build for fr-1051.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_runner.cc
      
      * Fix benchmark_random_interleaving_test.cc for macos and windows in fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   test/benchmark_random_interleaving_gtest.cc
      
      * Fix int type benchmark_random_interleaving_gtest for macos in fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   test/benchmark_random_interleaving_gtest.cc
      
      * Address dominichamon's comments 03/29 for fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      modified:   test/benchmark_random_interleaving_gtest.cc
      
      * Address dominichamon's comment on default min_time / repetitions for fr-1051.
      Also change sentinel of random_interleaving_repetitions to -1. Hopefully it
      fixes the failures on Windows.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      
      * Fix windows test failures for fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_runner.cc
      
      * Add license blurb for fr-1051.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_adjust_repetitions.cc
      modified:   src/benchmark_adjust_repetitions.h
      
      * Switch to std::shuffle() for fr-1105.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      
      * Change to 1e-9 in fr-1105
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_adjust_repetitions.cc
      
      * Fix broken build caused by bad merge for fr-1105.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_runner.cc
      
      * Fix build breakage for fr-1051.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      modified:   src/benchmark_register.cc
      modified:   src/benchmark_runner.cc
      
      * Print out reports as they come in if random interleaving is disabled (fr-1051)
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      
      * size_t, int64_t --> int in benchmark_runner for fr-1051.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_runner.cc
      modified:   src/benchmark_runner.h
      
      * Address comments from dominichamon for fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      modified:   src/benchmark_adjust_repetitions.cc
      modified:   src/benchmark_adjust_repetitions.h
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      modified:   test/benchmark_random_interleaving_gtest.cc
      
      * benchmar_indices --> size_t to make CI pass: fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark.cc
      
      * Fix min_time not initialized issue for fr-1051.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      
      * min_time --> MinTime in fr-1051.
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   src/benchmark_api_internal.cc
      modified:   src/benchmark_api_internal.h
      modified:   src/benchmark_runner.cc
      
      * Add doc for random interleaving for fr-1051
      
      Committer: Hai Huang <haih@google.com>
      
      On branch fr-1051
      Your branch is up to date with 'origin/fr-1051'.
      
      Changes to be committed:
      modified:   README.md
      new file:   docs/random_interleaving.md
      Co-authored-by: 's avatarDominic Hamon <dominichamon@users.noreply.github.com>