From c531edf5c4623f58d56e431641271b1c5a97aa3b Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sun, 4 Aug 2024 16:36:49 +0800 Subject: [PATCH] Added TransformBenchmark.cpp --- CMakeLists.txt | 4 +++ math/TransformBenchmark.cpp | 64 +++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 math/TransformBenchmark.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 07886a4..4545268 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,6 +56,10 @@ cm_example_project("DataType" ConstStringSetTest) add_executable(IDNameTest datatype/IDNameTest.cpp) cm_example_project("DataType" IDNameTest) + +add_executable(TransformBenchmark math/TransformBenchmark.cpp) +CM_EXAMPLE_PROJECT("Math" TransformBenchmark) + #################################################################################################### add_executable(LifetimeTest datatype/LifetimeTest.cpp) diff --git a/math/TransformBenchmark.cpp b/math/TransformBenchmark.cpp new file mode 100644 index 0000000..b8304c7 --- /dev/null +++ b/math/TransformBenchmark.cpp @@ -0,0 +1,64 @@ +#include +#include +#include +#include + +using namespace hgl; + +constexpr const size_t TEST_COUNT=10000; + +int main(int,char **) +{ + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_real_distribution<> dis_01(0, 1); + std::uniform_real_distribution<> dis_360(0, 359); + + Transform *t=new Transform[TEST_COUNT],*tp; + Matrix4f *m=new Matrix4f[TEST_COUNT],*mp; + + tp=t; + mp=m; + + double st,et; + + Vector3f r_vec; + + for(int i=0;iSetRotation(r_vec,dis_360(gen)); + + r_vec.x=dis_360(gen); + r_vec.y=dis_360(gen); + r_vec.z=dis_360(gen); + + tp->SetScale(r_vec); + + r_vec.x=dis_360(gen); + r_vec.y=dis_360(gen); + r_vec.z=dis_360(gen); + + tp->SetTranslation(r_vec); + + ++tp; + } + + tp=t; + + st=GetDoubleTime(); + for(int i=0;iGetMatrix(); + + ++tp; + ++m; + } + et=GetDoubleTime(); + + std::cout<<"Transform::GetMatrix() "<