결론적으론 둘다 결과는 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 는 좀 더 그러한듯..
반응형
'프로그래밍(Programming) > c++, 11, 14 , 17, 20' 카테고리의 다른 글
c++라이브러리 및 컨테이너 레퍼런스 (0) | 2013.05.13 |
---|---|
커스텀 메모리 할당자 (Are we out of memory?) (0) | 2013.05.11 |
템플릿(template)을 이용한 에러객체 만들기 (0) | 2013.05.08 |
#pragma pack 구조체 메모리 최적화 (0) | 2013.05.08 |
고정 크기 변수타입 __int8, 16, 32, 64, 128 (0) | 2013.05.07 |