You've already forked linux-packaging-mono
acceptance-tests
data
docs
external
Newtonsoft.Json
api-doc-tools
api-snapshot
aspnetwebstack
bdwgc
binary-reference-assemblies
bockbuild
boringssl
cecil
cecil-legacy
corefx
corert
helix-binaries
ikdasm
ikvm
illinker-test-assets
linker
llvm-project
clang
clang-tools-extra
compiler-rt
eng
libcxx
benchmarks
cmake
docs
fuzzing
include
lib
src
utils
google-benchmark
cmake
docs
include
src
test
CMakeLists.txt
basic_test.cc
benchmark_test.cc
complexity_test.cc
cxx03_test.cc
diagnostics_test.cc
donotoptimize_test.cc
filter_test.cc
fixture_test.cc
map_test.cc
multiple_ranges_test.cc
options_test.cc
output_test.h
output_test_helper.cc
register_benchmark_test.cc
reporter_output_test.cc
skip_with_error_test.cc
tools
.gitignore
AUTHORS
CMakeLists.txt
CONTRIBUTING.md
CONTRIBUTORS
LICENSE
README.LLVM
README.md
mingw.py
libcxx
symcheck-blacklists
cat_files.py
gen_link_script.py
merge_archives.py
not.py
sym_diff.py
sym_extract.py
sym_match.py
www
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CREDITS.TXT
LICENSE.TXT
NOTES.TXT
TODO.TXT
appveyor-reqs-install.cmd
appveyor.yml
libcxxabi
libunwind
lld
lldb
llvm
nuget
openmp
polly
Directory.Build.props
Directory.Build.targets
NuGet.config
azure-pipelines.yml
build.cmd
build.sh
dir.common.props
global.json
llvm.proj
mxe-Win64.cmake.in
nuget-buildtasks
nunit-lite
roslyn-binaries
rx
xunit-binaries
how-to-bump-roslyn-binaries.md
ikvm-native
llvm
m4
man
mcs
mono
msvc
netcore
po
runtime
samples
scripts
support
tools
COPYING.LIB
LICENSE
Makefile.am
Makefile.in
NEWS
README.md
acinclude.m4
aclocal.m4
autogen.sh
code_of_conduct.md
compile
config.guess
config.h.in
config.rpath
config.sub
configure.REMOVED.git-id
configure.ac.REMOVED.git-id
depcomp
install-sh
ltmain.sh.REMOVED.git-id
missing
mkinstalldirs
mono-uninstalled.pc.in
test-driver
winconfig.h
66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
![]() |
#include "benchmark/benchmark_api.h"
|
||
|
#include <chrono>
|
||
|
#include <thread>
|
||
|
|
||
|
#if defined(NDEBUG)
|
||
|
#undef NDEBUG
|
||
|
#endif
|
||
|
#include <cassert>
|
||
|
|
||
|
void BM_basic(benchmark::State& state) {
|
||
|
while (state.KeepRunning()) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void BM_basic_slow(benchmark::State& state) {
|
||
|
std::chrono::milliseconds sleep_duration(state.range(0));
|
||
|
while (state.KeepRunning()) {
|
||
|
std::this_thread::sleep_for(
|
||
|
std::chrono::duration_cast<std::chrono::nanoseconds>(sleep_duration));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
BENCHMARK(BM_basic);
|
||
|
BENCHMARK(BM_basic)->Arg(42);
|
||
|
BENCHMARK(BM_basic_slow)->Arg(10)->Unit(benchmark::kNanosecond);
|
||
|
BENCHMARK(BM_basic_slow)->Arg(100)->Unit(benchmark::kMicrosecond);
|
||
|
BENCHMARK(BM_basic_slow)->Arg(1000)->Unit(benchmark::kMillisecond);
|
||
|
BENCHMARK(BM_basic)->Range(1, 8);
|
||
|
BENCHMARK(BM_basic)->RangeMultiplier(2)->Range(1, 8);
|
||
|
BENCHMARK(BM_basic)->DenseRange(10, 15);
|
||
|
BENCHMARK(BM_basic)->Args({42, 42});
|
||
|
BENCHMARK(BM_basic)->Ranges({{64, 512}, {64, 512}});
|
||
|
BENCHMARK(BM_basic)->MinTime(0.7);
|
||
|
BENCHMARK(BM_basic)->UseRealTime();
|
||
|
BENCHMARK(BM_basic)->ThreadRange(2, 4);
|
||
|
BENCHMARK(BM_basic)->ThreadPerCpu();
|
||
|
BENCHMARK(BM_basic)->Repetitions(3);
|
||
|
|
||
|
void CustomArgs(benchmark::internal::Benchmark* b) {
|
||
|
for (int i = 0; i < 10; ++i) {
|
||
|
b->Arg(i);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
BENCHMARK(BM_basic)->Apply(CustomArgs);
|
||
|
|
||
|
void BM_explicit_iteration_count(benchmark::State& st) {
|
||
|
// Test that benchmarks specified with an explicit iteration count are
|
||
|
// only run once.
|
||
|
static bool invoked_before = false;
|
||
|
assert(!invoked_before);
|
||
|
invoked_before = true;
|
||
|
|
||
|
// Test that the requested iteration count is respected.
|
||
|
assert(st.max_iterations == 42);
|
||
|
size_t actual_iterations = 0;
|
||
|
while (st.KeepRunning())
|
||
|
++actual_iterations;
|
||
|
assert(st.iterations() == st.max_iterations);
|
||
|
assert(st.iterations() == 42);
|
||
|
|
||
|
}
|
||
|
BENCHMARK(BM_explicit_iteration_count)->Iterations(42);
|
||
|
|
||
|
BENCHMARK_MAIN()
|