|
|
最近看了本关于游戏引擎的书,想模仿书上的例子编个小引擎。在编写Math库的时候,我发现即使是一个无返回值,不传参数,函数体是空的什么都不执行的函数,甚至是内联,它的执行速度也没有D3D库的一些函数快。是代码有问题呢?还是D3D库作了什么优化?我比较不聪明,实在是不理解,求大家帮帮忙!!!! 0rz 0rz 0rz
(我测试函数速度的方法比较笨,就是循环1千万次,减出时间差)
代码:
int k,j;
D3DXVECTOR3 d3dvec(0.0f,0.0f,1.0f);
k=timeGetTime();
for(int i=0;i<10000000;i++)
{
//Frame();
D3DXVec3Normalize(&d3dvec,&d3dvec);
}
j=timeGetTime()-k;
这是函数Frame
void Frame(void)
{
}
j是时间。
执行10000000次Frame的时间比D3DXVec3Normalize大。
按理说D3DXVec3Normalize里即使代码再少也不能比没代码的快啊。
[em7] [em7] [em7] [em7] [em7] [em7] [em7] [em7] |
|