프로그래밍(Programming)/c++, 11, 14 , 17, 20
sqrt를 사용하지 않는 방법이있다면 피하자
3DMP
2013. 5. 8. 17:17
결론적으론 둘다 결과는 139 가 된다
반복문 횟수가 많긴 하지만 시간에 있어서 약간 차이를 보인다
timeTest1.startTime();
D3DXVECTOR3 vec1(3,-7,9);
float length=0;
for (int i=0;i<10000000;++i)
{
length=sqrtf(vec1.x*vec1.x+vec1.y*vec1.y+vec1.z*vec1.z);
length=length*length;
}
timeTest1.endTime();
timeTest2.startTime();
for (int i=0;i<10000000;++i)
{
length=vec1.x*vec1.x+vec1.y*vec1.y+vec1.z*vec1.z;
}
timeTest2.endTime();
이 정도 인데 sqrt는 특히나 매프레임마다 sqrt 를 호출하는 구조라면 상수들의 제곱으로써 피할 수 있는 방법은 없는지 생각해보는 것이 좋다
p.s 다른 수학함수도 내부적으로 좀 복잡해지는 것이라면 이와 마찬가지일지만서도 sqrt 는 좀 더 그러한듯..
반응형