added benchmark

This commit is contained in:
2025-09-17 19:56:50 +03:00
parent d773985822
commit 5875930f1a
3 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
enable_testing()
project(benchmark)
include(GoogleTest)
file(GLOB_RECURSE UNIT_TESTS_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
add_executable(${PROJECT_NAME} ${UNIT_TESTS_SOURCES})
set_target_properties(benchmark PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
UNITY_BUILD ON
UNITY_BUILD_BATCH_SIZE 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED ON)
target_link_libraries(${PROJECT_NAME} PRIVATE gtest gtest_main omath::omath)
gtest_discover_tests(${PROJECT_NAME})

View File

@@ -0,0 +1,31 @@
//
// Created by Vlad on 9/17/2025.
//
#include <gtest/gtest.h>
#include <omath/omath.hpp>
#include <chrono>
#include <print>
using namespace omath;
TEST(MatPerformanceTest, Mutl)
{
using mat_type = Mat<128, 128, float, MatStoreType::COLUMN_MAJOR>;
mat_type a;
mat_type b;
a.set(3.f);
b.set(7.f);
constexpr int iters = 1000;
float acum_time = 0.f;
mat_type c;
for (std::size_t i = 0 ; i < iters; i++)
{
const auto start = std::chrono::high_resolution_clock::now();
c = a * b;
const auto end = std::chrono::high_resolution_clock::now();
const auto time = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
acum_time += static_cast<float>(time);
}
std::print("Elapsed: {}, \n\n\n", acum_time / iters, c);
}