#include <chrono>
#include <cstring>
#include <iosfwd>
#include <string>
#include <vector>
Go to the source code of this file.
|
using | ankerl::nanobench::Clock = std::conditional< std::chrono::high_resolution_clock::is_steady, std::chrono::high_resolution_clock, std::chrono::steady_clock >::type |
|
|
void | ankerl::nanobench::render (char const *mustacheTemplate, Bench const &bench, std::ostream &out) |
| Renders output from a mustache-like template and benchmark results. More...
|
|
void | ankerl::nanobench::render (std::string const &mustacheTemplate, Bench const &bench, std::ostream &out) |
|
void | ankerl::nanobench::render (char const *mustacheTemplate, std::vector< Result > const &results, std::ostream &out) |
| Same as render(char const* mustacheTemplate, Bench const& bench, std::ostream& out), but for when you only have results available. More...
|
|
void | ankerl::nanobench::render (std::string const &mustacheTemplate, std::vector< Result > const &results, std::ostream &out) |
|
char const * | ankerl::nanobench::templates::csv () noexcept |
| CSV data for the benchmark results. More...
|
|
char const * | ankerl::nanobench::templates::htmlBoxplot () noexcept |
| HTML output that uses plotly to generate an interactive boxplot chart. See the tutorial for an example output. More...
|
|
char const * | ankerl::nanobench::templates::pyperf () noexcept |
| Output in pyperf compatible JSON format, which can be used for more analyzations. More...
|
|
char const * | ankerl::nanobench::templates::json () noexcept |
| Template to generate JSON data. More...
|
|
template<typename Arg > |
void | ankerl::nanobench::doNotOptimizeAway (Arg &&arg) |
| Makes sure none of the given arguments are optimized away by the compiler. More...
|
|
template<typename T > |
void | ankerl::nanobench::detail::doNotOptimizeAway (T const &val) |
|
template<typename T > |
void | ankerl::nanobench::detail::doNotOptimizeAway (T &val) |
|
PerformanceCounters & | ankerl::nanobench::detail::performanceCounters () |
|
std::ostream & | ankerl::nanobench::operator<< (std::ostream &os, BigO const &bigO) |
|
std::ostream & | ankerl::nanobench::operator<< (std::ostream &os, std::vector< ankerl::nanobench::BigO > const &bigOs) |
|
◆ ANKERL_NANOBENCH
#define ANKERL_NANOBENCH |
( |
|
x | ) |
ANKERL_NANOBENCH_PRIVATE_##x() |
◆ ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE
#define ANKERL_NANOBENCH_IS_TRIVIALLY_COPYABLE |
( |
|
... | ) |
std::is_trivially_copyable<__VA_ARGS__>::value |
◆ ANKERL_NANOBENCH_LOG
#define ANKERL_NANOBENCH_LOG |
( |
|
x | ) |
|
◆ ANKERL_NANOBENCH_NO_SANITIZE
#define ANKERL_NANOBENCH_NO_SANITIZE |
( |
|
... | ) |
|
◆ ANKERL_NANOBENCH_PRIVATE_CXX
#define ANKERL_NANOBENCH_PRIVATE_CXX |
( |
| ) |
__cplusplus |
◆ ANKERL_NANOBENCH_PRIVATE_CXX11
#define ANKERL_NANOBENCH_PRIVATE_CXX11 |
( |
| ) |
201103L |
◆ ANKERL_NANOBENCH_PRIVATE_CXX14
#define ANKERL_NANOBENCH_PRIVATE_CXX14 |
( |
| ) |
201402L |
◆ ANKERL_NANOBENCH_PRIVATE_CXX17
#define ANKERL_NANOBENCH_PRIVATE_CXX17 |
( |
| ) |
201703L |
◆ ANKERL_NANOBENCH_PRIVATE_CXX98
#define ANKERL_NANOBENCH_PRIVATE_CXX98 |
( |
| ) |
199711L |
◆ ANKERL_NANOBENCH_PRIVATE_IGNORE_EFFCPP_POP
#define ANKERL_NANOBENCH_PRIVATE_IGNORE_EFFCPP_POP |
( |
| ) |
|
◆ ANKERL_NANOBENCH_PRIVATE_IGNORE_EFFCPP_PUSH
#define ANKERL_NANOBENCH_PRIVATE_IGNORE_EFFCPP_PUSH |
( |
| ) |
|
◆ ANKERL_NANOBENCH_PRIVATE_IGNORE_PADDED_POP
#define ANKERL_NANOBENCH_PRIVATE_IGNORE_PADDED_POP |
( |
| ) |
|
◆ ANKERL_NANOBENCH_PRIVATE_IGNORE_PADDED_PUSH
#define ANKERL_NANOBENCH_PRIVATE_IGNORE_PADDED_PUSH |
( |
| ) |
|
◆ ANKERL_NANOBENCH_PRIVATE_NODISCARD
#define ANKERL_NANOBENCH_PRIVATE_NODISCARD |
( |
| ) |
|
◆ ANKERL_NANOBENCH_PRIVATE_NOINLINE
#define ANKERL_NANOBENCH_PRIVATE_NOINLINE |
( |
| ) |
__attribute__((noinline)) |
◆ ANKERL_NANOBENCH_PRIVATE_PERF_COUNTERS
#define ANKERL_NANOBENCH_PRIVATE_PERF_COUNTERS |
( |
| ) |
0 |
◆ ANKERL_NANOBENCH_VERSION_MAJOR
#define ANKERL_NANOBENCH_VERSION_MAJOR 4 |
◆ ANKERL_NANOBENCH_VERSION_MINOR
#define ANKERL_NANOBENCH_VERSION_MINOR 3 |
◆ ANKERL_NANOBENCH_VERSION_PATCH
#define ANKERL_NANOBENCH_VERSION_PATCH 6 |