Add some cpp<->chai performance tests
This commit is contained in:
parent
08ba646200
commit
e0827634bb
@ -397,6 +397,14 @@ if(BUILD_TESTING)
|
|||||||
add_test(NAME performance.${filename} COMMAND ${VALGRIND} --tool=callgrind --callgrind-out-file=callgrind.performance.${filename} $<TARGET_FILE:chai> ${CMAKE_CURRENT_SOURCE_DIR}/performance_tests/${filename})
|
add_test(NAME performance.${filename} COMMAND ${VALGRIND} --tool=callgrind --callgrind-out-file=callgrind.performance.${filename} $<TARGET_FILE:chai> ${CMAKE_CURRENT_SOURCE_DIR}/performance_tests/${filename})
|
||||||
list(APPEND TESTS performance.${filename})
|
list(APPEND TESTS performance.${filename})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
add_executable(profile_cpp_calls_2 performance_tests/profile_cpp_calls_2.cpp)
|
||||||
|
target_link_libraries(profile_cpp_calls_2 ${LIBS})
|
||||||
|
add_test(NAME performance.profile_cpp_calls_2 COMMAND ${VALGRIND} --tool=callgrind --callgrind-out-file=callgrind.performance.profile_cpp_calls_2 $<TARGET_FILE:profile_cpp_calls_2>)
|
||||||
|
|
||||||
|
add_executable(profile_fun_wrappers performance_tests/profile_fun_wrappers.cpp)
|
||||||
|
target_link_libraries(profile_fun_wrappers ${LIBS})
|
||||||
|
add_test(NAME performance.profile_fun_wrappers COMMAND ${VALGRIND} --tool=callgrind --callgrind-out-file=callgrind.performance.profile_fun_wrappers $<TARGET_FILE:profile_fun_wrappers>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_property(TEST ${TESTS}
|
set_property(TEST ${TESTS}
|
||||||
|
20
performance_tests/profile_cpp_calls_2.cpp
Normal file
20
performance_tests/profile_cpp_calls_2.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include <chaiscript/chaiscript.hpp>
|
||||||
|
#include <chaiscript/chaiscript_stdlib.hpp>
|
||||||
|
|
||||||
|
double f(const std::string &, double, bool) noexcept {
|
||||||
|
return .0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
chaiscript::ChaiScript chai(chaiscript::Std_Lib::library());
|
||||||
|
|
||||||
|
chai.add(chaiscript::fun(&f), "f");
|
||||||
|
|
||||||
|
chai.eval(R"(
|
||||||
|
for (var i = 0; i < 100000; ++i) {
|
||||||
|
f("str", 1.2, false);
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
}
|
20
performance_tests/profile_fun_wrappers.cpp
Normal file
20
performance_tests/profile_fun_wrappers.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include <chaiscript/chaiscript.hpp>
|
||||||
|
#include <chaiscript/chaiscript_stdlib.hpp>
|
||||||
|
|
||||||
|
double f(const std::string &, double, bool) noexcept {
|
||||||
|
return .0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
chaiscript::ChaiScript chai(chaiscript::Std_Lib::library());
|
||||||
|
|
||||||
|
chai.add(chaiscript::fun(&f), "f");
|
||||||
|
|
||||||
|
const auto f = chai.eval<std::function<void ()>>(R"(fun(){ f("str", 1.2, false); })");
|
||||||
|
|
||||||
|
for (int i = 0; i < 100000; ++i) {
|
||||||
|
f();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user