Profiler
The Profiler class can be used to measure various function calls to identify the slower functions.
EX1
#include <origin.h> #include <profiler.h> void Profiler_ex1() { Profiler tempObj; // just need to place this as 1st line in function vector vSrc; matrix mat; vSrc.SetSize(500000); mat.SetSize(500,1000); for(int n=0; n<500000; n++)//Generate 500000 random numbers { vSrc[n] = (int)(rnd()*1000000); } mat.SetByVector(vSrc); vSrc.Sort(); mat.Sort(); } /* Output: Top 8 most time consuming functions: Function Name Time(sec) Num of Calls <1> rnd 0.216601 500000 <2>vectorbase::Sort 0.208894 1 <3>matrixbase::Sort 0.139992 1 <4>Profiler::Profiler 0.001828 1 <5>Project::Profile 0.001770 1 <6>matrixbase::SetByVector 0.001640 1 <7>vectorbase::SetSize 0.001071 1 <8>matrixbase::SetSize 0.000014 1 It figures out matrix is more efficient than vector in calculating. */
Profiler.h