1. 19 Jul, 2021 2 commits
  2. 01 Jul, 2021 2 commits
  3. 29 Jun, 2021 1 commit
  4. 28 Jun, 2021 5 commits
  5. 24 Jun, 2021 3 commits
  6. 18 Jun, 2021 1 commit
  7. 16 Jun, 2021 1 commit
  8. 15 Jun, 2021 1 commit
  9. 09 Jun, 2021 1 commit
  10. 08 Jun, 2021 1 commit
  11. 04 Jun, 2021 1 commit
  12. 03 Jun, 2021 7 commits
    • Dominic Hamon's avatar
      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++
      bdd6c447
    • Roman Lebedev's avatar
      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.
      fbc31405
    • Dominic Hamon's avatar
      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
      d17ea665
    • Roman Lebedev's avatar
      [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.
      32cc6071
    • Roman Lebedev's avatar
      [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
      520573fe
    • Roman Lebedev's avatar
      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..
      6e32352c
    • Roman Lebedev's avatar
      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.
      0c1da0a7
  13. 02 Jun, 2021 4 commits
    • Roman Lebedev's avatar
      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.
      80a62618
    • Roman Lebedev's avatar
      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.
      4c2e32f1
    • Roman Lebedev's avatar
      BenchmarkFamilies::FindBenchmarks(): correctly use std::vector<>::reserve() · e0a080d0
      Roman Lebedev authored
      It takes the whole total new capacity, not the increase.
      e0a080d0
    • Roman Lebedev's avatar
      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=`
      a54ef37a
  14. 01 Jun, 2021 5 commits
  15. 30 May, 2021 2 commits
  16. 28 May, 2021 1 commit
    • Dominic Hamon's avatar
      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.
      0e1255af
  17. 21 May, 2021 1 commit
  18. 20 May, 2021 1 commit
    • Kai Germaschewski's avatar
      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
      a4bcd937