Fixes
Remove unused parameter from lambda. by @dominichamon in #1223
Optimized docs installation by @xvitaly in #1225
Fix mention of --benchmarks in comment by @oontvoo in #1229
cmake: eliminate redundant target_include_directories by @sergiud in #1242
Cmake: options for controlling werror, disable werror for PGI compilers by @PhilipDeegan in #1246
Fix -Wdeprecated-declarations warning triggered by clang-cl. by @bc-lee in #1245
cmake: make package config relocatable by @sergiud in #1244
cmake: allow to use package config from build directory by @sergiud in #1240
Fix -Wdeprecated-declarations warning once more. by @bc-lee in #1256
Fix un-initted error in test and fix change the API previously proposed to use std::string instead of raw char* by @oontvoo in #1266
[cleanup] Change == "" to .empty() on string to avoid clang-tidy warnings by @oontvoo in #1271
Fix errorWshorten-64-to-32 with clang 12.0 by @bensuperpc in #1273
Fix error with Fix Werror=old-style-cast by @bensuperpc in #1272
Fixed typo in doc: s/marcro/macro by @oontvoo in #1274
Fix warning with MacOS by @bensuperpc in #1276
clang-format Google on {src/,include/} by @dominichamon in #1280
format tests with clang-format by @dominichamon in #1282
check clang format on pull requests and merges by @dominichamon in #1281
Fix dependency typo and unpin cibuildwheel version in wheel building … by @nicholasjng in #1263
disable lint check where we know it'd fail by @oontvoo in #1286
Disable clang-tidy (unused-using-decls) by @oontvoo in #1287
Add clang-tidy check by @dominc8 in #1290
Fix broken link to Setup/Teardown section by @Krzmbrzl in #1291
Update user_guide.md: thread_index should be thread_index() by @ShawnZhong in #1296
clang-tidy: readability-redundant and performance by @dominc8 in #1298
update googletest to latest release tag 1.11.0 by @dominichamon in #1301
Avoid errors due to "default label in switch which covers all enumeration values" in Windows codepath by @mstorsjo in #1302
Fix -DBENCHMARK_ENABLE_INSTALL=OFF build (Fixes#1275) by @LebedevRI in #1305
Address c4267 warning on MSVC by @staffantj in #1315
Destructor not returning is expected in some cases by @staffantj in #1316
Features
Added support of packaged GTest for running unit tests by @xvitaly in #1226
Introduce additional memory metrics by @oontvoo in #1238
Added Doxygen support by @xvitaly in #1228
Allow template arguments to be specified directly on the BENCHMARK macro by @oontvoo in #1262
[RFC] Adding API for setting/getting benchmark_filter flag? by @oontvoo in #1254
use docker container for ubuntu-16.04 builds by @dominichamon in #1265
Support for building with LLVM clang-10/clang-11 on Windows. by @alisenai in #1227
Add Setup/Teardown option on Benchmark. by @oontvoo in #1269
compare.py: compute and print 'OVERALL GEOMEAN' aggregate by @LebedevRI in #1289
Features:
--command-name can now take parameter names from --parameter-* options, see #351
and #391 (@silathdiir)
-Exit codes (or signals) are now printed in cases of command failures, see #342
(@KaindlJulian)
-Exit codes are now part of the JSON output, see #371 (@JordiChauzi)
-Colorized output should now be enabled on Windows by default, see #427
Changes:
-When --export-* commands are used, result files are created before benchmark
execution
-to fail early in case of, e.g., wrong permissions. See #306 (@s1ck).
-When --export-* options are used, result files are written after each
individual
-benchmark command instead of writing after all benchmarks have finished. See
#306 (@s1ck).
-Reduce number of shell startup time measurements from 200 to 50, generally
speeding up benchmarks. See #378
-User and system time are now in consistent time units, see #408 and #409
(@film42)
features
[breaking change] introduce accessorrs for public data members (#1208)
add support for percentage units in statistics (#1219)
introduce coefficient of variation aggregate (#1220)
format percentages in console reporter (#1221)
bugfixes
fix unreachable code warning (#1214)
replace #warning with #pragma message (#1216)
report PFM as found when it is
update u-test value expectations due to scipy upgrade
other stuff
refactored documentation to minimise README.md (#1211)
install docs when installing library (#1212)
features
helper methods to create integer lists (#1179)
default of --benchmark_filter is now rather than "." (#1207)
fixes
type warning (#1193)
returning a reference when callers want pointers (65dc63b)
cleanup
remove dead code from PredictNumItersNeeded (#1206)
fix clang-tidy warnings (#1195) and typos (#1194)
prefix macros (#1186) and flags (#1187, #1185) to avoid name clashes
downgrade warnings for googletest (twice) (#1203, 560b0834, ee726a7)
* Fixed macros in bon_csv2html.cpp that had lower case due to excessive
matching on a regex.
* Changed debian/compat to level 10
* Allow specifying the number of random seeks and the number of seeker
processes and store that in the CSV.
* Changed bon_csv2html and bon_csv2txt to take the new CSV format.
* Changed the text output to use KiB/MiB/GiB as units of measurement so we
can fit NVMe results on screen.
* Changed the HTML to be in MiB/s for the bulk IO tests.
* Changed the default size for getc_putc to work with faster CPUs and more
optimised libc.
-- Russell Coker <russell@coker.com.au> Wed, 26 Dec 2018 15:14:28 +1100
1.5.5
new features
Add support for new architecture loongarch (#1173)
Fixed version of random interleaving of benchmark repetitions (#1163, fixing #1051)
Easier comparison of results across families (#1168#1166#1165#1164)
fixes
Fix perf counter argument parsing (#1160)
internal cleanup
Drop warning to satisfy clang's -Wunused-but-set-variable diag (#1174)
Enable some sanitizer builds in github actions (#1167#1171)
Fix memory leak in test (#1169)
new features
better versioning in releases [#1047]
MSVC arm64 support [#1090]
add support for hardware performance counters [#1114, #1153]
add interface for custom context to be included [#1127, #1137]
random interleaving to reduce noise [#1105]
compiler cleanliness
support -Wsuggest-override [#1059]
builds correctly with gcc-11 [#1060]
fix some windows warnings [#1121]
fix -Wreserved-identifier failures [#1143]
fix pendantic warnings [#1156]
New features
Implement custom benchmark names (#1107)
Support for macro expansion in benchmark names (#1054)
Reduce ramp up repetitions when KeepRunningBatch is used (#1113)
Platform support
CycleTimer implemented for M68K architecture (#1050)
Support for DragonFly BSD (#1058)
Better support for z/OS (#1063, #1067)
Add MSVC ARM64 support for cycle clocks (#1052)
Add support for Elbrus 2000 (#1091)
Fix CPU frequency for AMD Ryzen (and probably other CPUs) (#1117)
Bug fixes
Fix range when starting at zero (#1073)
Tool improvements
Build tools with bazel (#982)
Support JSON dumps of benchmark diffs (#1042)
This also fixes build problems with bind-9.16.13. Detailed changes:
- Release 2.5.1
This release re-adds support for TYPEnnn and ANY in the datafile, this
was missed during the removal of the dependency on BINDs development
libraries in v2.4.0.
Also note that with v2.5.0, this software now depends on Concurrency
Kit (ck) for atomic operations.
- Release 2.5.0
This release adds re-connection support for TCP and DoT protocol,
new options to `resperf` and fixes a few bugs.
`dnsperf` and `resperf` will now try to re-connect when they lose a TCP
or DoT connection, and with that comes a few new statistics metrics.
For `dnsperf`, if a connection oriented protocol is used, it will now
show the total number of re-connections made and the connection latency.
For `resperf` it also shows the total number of re-connections made and
the gnuplot data now contains the total number of connections made and
the connection latency for each interval.
Beside re-connection support, improvements have been made when it comes
to tracking socket readiness while connections are established which
should generate less warnings about "socket not ready".
New `resperf` options:
- `-R`: Reopen the datafile if it runs out of data before the testing
is completed. This allows for long running tests on very small and
simple query datafile.
- `-F <fall_behind>`: Sets the maximum number of queries that can fall
behind being sent. `resperf` will stop when this many queries should
have been sent and it can be relative easy to hit if `-m <max_qps>`
is set too high.
The default is 1000 and setting it to zero (0) disables the check.
Bugfixes:
- Fixed port handling for host/network format when setting client side
port with `-x`
- Fix support for quoted characters, `\000` and `\.`, in domain names,
this was lost when removing BIND's internal development libraries
- Fix issue in `dnsperf`, it would loop forever if no connection could
be established
- Fix potential buffer overrun in `resperf` when using response id
for `queries[]`
- DoT: Fix bug when sending from buffer
Other changes:
- Always use `IPV6_V6ONLY` socket option for IPv6
- Add man-page on `-W` option added in v2.4.0
- Reformat man-pages
- `resperf`:
- Try and process more request each run to hopefully not hit max
outstanding so easy when high QPS
- Add default value to `-C` so it shows in help
- Release 2.4.2
This release fixes a few issues with reading of the datafile which
could lead to "ran out of data" errors.
The problem was that reading from the datafile was done before finding
a socket to send it on, or socket readyness, and that lead to progressing
the queries without really doing anything.
Another issues that's been fixed was that if the read lines perfectly
aligned with the buffer, it would be treated like EOF and caused an exit.
- Release 2.4.1
This release fixes an issue with the socket readiness function that
could cause a buffer overflow (`-T 10 -c 2000`) due to `select()` being
limited to check 1023 sockets. `poll()` is now used which has no limit.
There has also been a few fixes to the contrib script `queryparse` that
has to do with python v2 and v3 compatibility and better exception
handling.
- Release 2.4.0
This release removes the dependency on BIND's internal development
libraries! This make building and packaging a lot easier and less
troublesome in the future.
This software now depends only on OpenSSL (for TSIG feature) with an
optional depend on LDNS (for dynamic updates feature).
New option:
- Transport mode option `-m`/`-M` now recognizes `dot` alongside `tls`
for encrypted DNS
- Added `-W` for outputting warnings and errors to stdout
Other changes / bugfixes:
- Fix potential memory leak of query descriptions when using verbose
- Only use TLS v1.2 and above for DoT/TLS
- Add a lot of tests
- Add coverage testing
A command-line benchmarking tool.
Features:
-Statistical analysis across multiple runs.
-Support for arbitrary shell commands.
-Constant feedback about the benchmark progress and current estimates.
-Warmup runs can be executed before the actual benchmark.
-Cache-clearing commands can be set up before each timing run.
-Statistical outlier detection to detect interference from other programs and
caching effects.
-Export results to various formats: CSV, JSON, Markdown, AsciiDoc.
-Parameterized benchmarks (e.g. vary the number of threads).
Timestamps in output are now rfc3339-formatted #965
overflow warnings with timers fixed#980
Python dependencies are now covered by a requirements.txt #994
JSON output cleaned up when no CPU scaling is present (#1008)
CartesianProduct added for easier settings of multiple ranges (#1029)
Python bindings improvements:
Custom main functions (#993)
A rename to google_benchmark (#199
More state methods bound (#1037) with a builder interface (#1040)
Workflow additions in github include pylint (#1039) and bindings runs (#1041)
rbenchmark is inspired by the Perl module Benchmark, and is intended
to facilitate benchmarking of arbitrary R code. The library consists
of just one function, benchmark, which is a simple wrapper around
system.time. Given a specification of the benchmarking process
(counts of replications, evaluation environment) and an arbitrary
number of expressions, benchmark evaluates each of the expressions in
the specified environment, replicating the evaluation as many times as
specified, and returning the results conveniently wrapped into a data
frame.
No longer requires python 2.7
glmark2 2020.04 (20200428)
==========================
* Port Wayland flavor to xdg-shell window management.
* Support recent Android SDK/NDK versions.
* Add support for Windows via WGL and ANGLE-EGL.
* Support Raspberry Pi's dispmanx.
* Use glad for GL headers and dynamic GL library loading.
* Add --data-path command-line option to set data path at runtime.
* Add 'nframes' scene option to limit the number of rendered frames.
* Add F-Droid/fastlane metadata.
Update dnsperf to 2.3.4.
pkgsrc change: switch dependency from net/bind914 to net/bind916
2020-05-15 Jerry Lundström
Release 2.3.4
This release adds a workaround, thanks to patch from Petr Menšík, for
building on systems with BIND 9.16. Also improves error handling by
using thread-safe `strerror_r()` instead of `strerror()`.
88c3ef4 strerror
1917f67 openSUSE Tumbleweed
fd39641 AS_VAR_APPEND
aeeef74 bind 9.16
07732cd BIND, libcrypto, clang format
08146e3 Add crypto library to checks
e4307c2 Add checks to pass with BIND 9.16
3f9aed3 Prepare check for bind 9.11/9.16 return types
2020-05-06 Jerry Lundström
Release 2.3.3
This release changes the behavior of `dnsperf` and `resperf` when it
comes to TCP and TLS connections, and updates package building using
COPR (thanks to patch from Petr Menšík (Red Hat)).
Connection reset or close are now treated as "try again" so that the
run is finished and not aborted. As SIGPIPE might be received on usage
of closed connections it's now blocked in `dnsperf` and handled as
a fatal action in `resperf`.
62885ad SIGPIPE
106c50e connection
3ef0899 README
61a3b1c COPR
35efa27 COPR
46b37a1 COPR
5c126ae COPR
1c51b76 Provide full URL in spec
2a4dd0e Allow recreation of source archive
931d6cc Do not require root for archive creation
v1.5.1:
Python bindings are now available in //bindings/python
Upgraded bazel from 0.10.1 to 3.2.0 (long overdue)
RISC-V and PPC cycleclock fixes
Various build warnings and cmake issues resolved
Documentation improvements