From 2c60a9419b8aecf15dc3a17cc3e4f006d55661f7 Mon Sep 17 00:00:00 2001 From: Sergey Kaplun <skaplun@tarantool.org> Date: Tue, 21 May 2024 14:16:36 +0300 Subject: [PATCH] perf: save perf results for the benchmarks This patch saves the output of the performance tests in the JSON format to be processed later. The corresponding directory is added to the <.gitignore>. NO_DOC=perf test NO_CHANGELOG=perf test NO_TEST=perf test --- .gitignore | 1 + perf/CMakeLists.txt | 5 +++++ perf/lua/CMakeLists.txt | 2 ++ 3 files changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index 519574edf5..b378257279 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ extra/Makefile extra/*/Makefile perf/Makefile perf/lua/Makefile +perf/output/ test/Makefile test/*/Makefile test/*/*/Makefile diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt index 4ae74f4bc2..1a64760e6c 100644 --- a/perf/CMakeLists.txt +++ b/perf/CMakeLists.txt @@ -1,5 +1,8 @@ set(CMAKE_CXX_STANDARD 14) +set(PERF_OUTPUT_DIR ${PROJECT_BINARY_DIR}/perf/output) +file(MAKE_DIRECTORY ${PERF_OUTPUT_DIR}) + add_subdirectory(lua) find_package(benchmark QUIET) @@ -40,6 +43,8 @@ function(create_perf_test_target) message(STATUS "Creating C performance test ${PERF_TARGET}_perftest") add_custom_target(${PERF_TARGET}_perftest COMMAND "$<TARGET_FILE:${PERF_TARGET}.perftest>" + "--benchmark_out_format=json" + "--benchmark_out=${PERF_OUTPUT_DIR}/${PERF_TARGET}.json" DEPENDS ${PERF_TARGET}.perftest COMMENT Running ${PERF_TARGET}_perftest ) diff --git a/perf/lua/CMakeLists.txt b/perf/lua/CMakeLists.txt index 685bec7366..55d523f92e 100644 --- a/perf/lua/CMakeLists.txt +++ b/perf/lua/CMakeLists.txt @@ -23,6 +23,8 @@ function(create_perf_lua_test) COMMAND ${CMAKE_COMMAND} -E env LUA_PATH="${LUA_PATH}" ${TARANTOOL_BIN} ${TEST_PATH} + --output="${PERF_OUTPUT_DIR}/${PERF_NAME}.json" + --output_format=json COMMENT Running ${PERF_NAME}_perftest DEPENDS tarantool ${TEST_PATH} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} -- GitLab