Added TransformBenchmark.cpp
This commit is contained in:
parent
4e80bbb57a
commit
c531edf5c4
@ -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)
|
||||
|
64
math/TransformBenchmark.cpp
Normal file
64
math/TransformBenchmark.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
#include<hgl/Time.h>
|
||||
#include<hgl/math/Transform.h>
|
||||
#include<iostream>
|
||||
#include <random>
|
||||
|
||||
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;i<TEST_COUNT;i++)
|
||||
{
|
||||
r_vec.x=dis_01(gen);
|
||||
r_vec.y=dis_01(gen);
|
||||
r_vec.z=dis_01(gen);
|
||||
|
||||
tp->SetRotation(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;i<TEST_COUNT;i++)
|
||||
{
|
||||
*m=tp->GetMatrix();
|
||||
|
||||
++tp;
|
||||
++m;
|
||||
}
|
||||
et=GetDoubleTime();
|
||||
|
||||
std::cout<<"Transform::GetMatrix() "<<TEST_COUNT<<" time: "<<et-st<<"sec."<<std::endl;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user