Skip to content

Commit 24df4d0

Browse files
committed
report the compiler in the benchmark and increase the default number of iterations
1 parent 0ce823c commit 24df4d0

2 files changed

Lines changed: 57 additions & 6 deletions

File tree

CMakeLists.txt

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,57 @@ find_package(OpenMP REQUIRED)
1111
target_link_libraries(benchmark PRIVATE OpenMP::OpenMP_CXX)
1212

1313
if (MSVC)
14-
target_compile_options(benchmark PRIVATE /W4 /permissive- /bigobj)
14+
set(MEXCE_BENCHMARK_LOCAL_FLAGS /W4 /permissive- /bigobj)
1515
else()
16-
target_compile_options(benchmark PRIVATE -Wall -Wextra -Wpedantic)
16+
set(MEXCE_BENCHMARK_LOCAL_FLAGS -Wall -Wextra -Wpedantic)
1717
endif()
1818

19+
target_compile_options(benchmark PRIVATE ${MEXCE_BENCHMARK_LOCAL_FLAGS})
20+
21+
set(MEXCE_BENCHMARK_COMPILER "${CMAKE_CXX_COMPILER_ID}")
22+
if (CMAKE_CXX_COMPILER_VERSION)
23+
string(APPEND MEXCE_BENCHMARK_COMPILER " ${CMAKE_CXX_COMPILER_VERSION}")
24+
endif()
25+
26+
set(MEXCE_BENCHMARK_FLAGS "${CMAKE_CXX_FLAGS}")
27+
if (CMAKE_BUILD_TYPE)
28+
string(TOUPPER "${CMAKE_BUILD_TYPE}" MEXCE_BUILD_TYPE_UPPER)
29+
if (DEFINED CMAKE_CXX_FLAGS_${MEXCE_BUILD_TYPE_UPPER})
30+
set(MEXCE_BUILD_TYPE_FLAGS "${CMAKE_CXX_FLAGS_${MEXCE_BUILD_TYPE_UPPER}}")
31+
if (MEXCE_BUILD_TYPE_FLAGS)
32+
if (MEXCE_BENCHMARK_FLAGS)
33+
string(APPEND MEXCE_BENCHMARK_FLAGS " ")
34+
endif()
35+
string(APPEND MEXCE_BENCHMARK_FLAGS "${MEXCE_BUILD_TYPE_FLAGS}")
36+
endif()
37+
endif()
38+
endif()
39+
40+
if (MEXCE_BENCHMARK_LOCAL_FLAGS)
41+
list(JOIN MEXCE_BENCHMARK_LOCAL_FLAGS " " MEXCE_BENCHMARK_LOCAL_FLAGS_STR)
42+
if (MEXCE_BENCHMARK_LOCAL_FLAGS_STR)
43+
if (MEXCE_BENCHMARK_FLAGS)
44+
string(APPEND MEXCE_BENCHMARK_FLAGS " ")
45+
endif()
46+
string(APPEND MEXCE_BENCHMARK_FLAGS "${MEXCE_BENCHMARK_LOCAL_FLAGS_STR}")
47+
endif()
48+
endif()
49+
50+
string(STRIP "${MEXCE_BENCHMARK_FLAGS}" MEXCE_BENCHMARK_FLAGS)
51+
if ("${MEXCE_BENCHMARK_FLAGS}" STREQUAL "")
52+
set(MEXCE_BENCHMARK_FLAGS "<none>")
53+
endif()
54+
55+
foreach(_var MEXCE_BENCHMARK_COMPILER MEXCE_BENCHMARK_FLAGS)
56+
string(REPLACE "\\" "\\\\" ${_var} "${${_var}}")
57+
string(REPLACE "\"" "\\\"" ${_var} "${${_var}}")
58+
endforeach()
59+
60+
target_compile_definitions(benchmark PRIVATE
61+
BENCHMARK_COMPILER="${MEXCE_BENCHMARK_COMPILER}"
62+
BENCHMARK_COMPILER_FLAGS="${MEXCE_BENCHMARK_FLAGS}"
63+
)
64+
1965
enable_testing()
2066
add_test(NAME benchmark_quick
2167
COMMAND benchmark 5 ${CMAKE_BINARY_DIR}/benchmark_quick_results.txt)

test/benchmark.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ int main(int argc, char* argv[])
189189
return 1;
190190
}
191191

192-
int iterations = 10000;
192+
int iterations = 100000;
193193
std::string output_path = "benchmark_results.txt";
194194
bool iterations_set = false;
195195

@@ -263,6 +263,13 @@ int main(int argc, char* argv[])
263263
}
264264
std::ostream& out = *output_stream;
265265

266+
#ifdef BENCHMARK_COMPILER
267+
out << "Compiler: " << BENCHMARK_COMPILER << std::endl;
268+
#endif
269+
#ifdef BENCHMARK_COMPILER_FLAGS
270+
out << "Compiler flags: " << BENCHMARK_COMPILER_FLAGS << std::endl;
271+
#endif
272+
266273
const volatile std::size_t total_expressions = mexce::benchmark_data::kExpressionCount; // volatile, only for MSVC to shut up
267274
if (total_expressions == 0) {
268275
out << "No expressions available for benchmarking." << std::endl;
@@ -491,8 +498,7 @@ int main(int argc, char* argv[])
491498
};
492499

493500
std::vector<std::string> row_labels;
494-
row_labels.reserve(k_num_bins + 3);
495-
row_labels.emplace_back("Samples");
501+
row_labels.reserve(k_num_bins + 2);
496502
row_labels.emplace_back("0 (exact)");
497503
for (size_t bin_idx = 0; bin_idx < k_num_bins; ++bin_idx) {
498504
char buf[32];
@@ -516,7 +522,6 @@ int main(int argc, char* argv[])
516522
const Distribution_column& column = distribution_columns[column_idx];
517523
std::vector<std::string>& values = column_values[column_idx];
518524
values.reserve(row_labels.size());
519-
values.emplace_back(std::to_string(column.comparisons));
520525
if (column.comparisons == 0) {
521526
values.emplace_back("-");
522527
for (size_t bin_idx = 0; bin_idx < k_num_bins + 1; ++bin_idx) {

0 commit comments

Comments
 (0)