testqbsp: experiment with adding nanobench
This commit is contained in:
parent
8d6c59a00e
commit
5bf0a8b2c7
|
|
@ -7,3 +7,6 @@
|
|||
[submodule "3rdparty/json"]
|
||||
path = 3rdparty/json
|
||||
url = https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent
|
||||
[submodule "3rdparty/nanobench"]
|
||||
path = 3rdparty/nanobench
|
||||
url = https://github.com/martinus/nanobench
|
||||
|
|
|
|||
|
|
@ -5,4 +5,5 @@ set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
|
|||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
add_subdirectory(googletest EXCLUDE_FROM_ALL)
|
||||
|
||||
add_subdirectory(json EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(json EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(nanobench EXCLUDE_FROM_ALL)
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 26a9c089ca54927c1658c046749ca1b8fd60422c
|
||||
|
|
@ -49,7 +49,7 @@ set(QBSP_TEST_SOURCE
|
|||
test_qbsp.cc
|
||||
${CMAKE_BINARY_DIR}/testmaps.hh)
|
||||
add_executable(testqbsp ${QBSP_TEST_SOURCE})
|
||||
target_link_libraries (testqbsp libqbsp common ${CMAKE_THREAD_LIBS_INIT} TBB::tbb gtest gmock fmt::fmt)
|
||||
target_link_libraries (testqbsp libqbsp common ${CMAKE_THREAD_LIBS_INIT} TBB::tbb gtest gmock fmt::fmt nanobench::nanobench)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(testqbsp)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
#include <common/qvec.hh>
|
||||
#include <testmaps.hh>
|
||||
|
||||
#include <nanobench.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include <set>
|
||||
|
|
@ -836,4 +838,31 @@ TEST(testmaps_q2, base1)
|
|||
// visdata 0
|
||||
// entdata 53623
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
TEST(benchmark, winding) {
|
||||
ankerl::nanobench::Bench bench;
|
||||
|
||||
bench.run("std::vector<double> reserve(3*4*6)", [&] {
|
||||
std::vector<double> temp;
|
||||
temp.reserve(3 * 4 * 6);
|
||||
ankerl::nanobench::doNotOptimizeAway(temp);
|
||||
});
|
||||
bench.run("std::vector<qvec3d> reserve(4*6)", [&] {
|
||||
std::vector<qvec3d> temp;
|
||||
temp.reserve(4 * 6);
|
||||
ankerl::nanobench::doNotOptimizeAway(temp);
|
||||
});
|
||||
bench.run("std::array<double, 3*4*6>", [&] {
|
||||
std::array<double, 3 * 4 * 6> temp;
|
||||
ankerl::nanobench::doNotOptimizeAway(temp);
|
||||
});
|
||||
bench.run("std::array<qvec3d, 4*6>", [&] {
|
||||
std::array<qvec3d, 4 * 6> temp;
|
||||
ankerl::nanobench::doNotOptimizeAway(temp);
|
||||
});
|
||||
bench.run("polylib::winding_base_t<6> construct", [&] {
|
||||
polylib::winding_base_t<6> temp;
|
||||
ankerl::nanobench::doNotOptimizeAway(temp);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue