[코드 최적화]프로그램 속도 향상 방법
- 2008년 자료 발췌 1. CPU 레지스터의 사용 자주 사용되는 변수는 cpu 레지스터에 저장 명령어 : auto int nLoopCounter; register int nCount = 0; 2. Lookup Table 사용 예) cos 경우 배열[90]을 만들어 미리 저장해놓고 참조하여 사용 일천만번 회전 하는데 20초, 룩업 테이블 사용시 2초 3. 메모리 할당 GlobalAlloc() 윈도우 힙에 저장 CRT 힙의 경우 64k 할당 받아가 그 다음 2배씩 할당 받는데 실시간으로 계속 할 당 받는 부담 데이터가 큰 경우 윈도우 힙 사용 단점 : 윈도우 98 에서는 문제가 됨. malloc 보다 new가 빠름. 단점 : new 로 할당한 함수는 delete가 안됨(윈도우98에서) 모트리 연구소의 경력 20년의 개발자들과 검증한 결과임. 4. 곱하기/나누기 연산의 개선 로그로 전환 -> 로그에서 지수끼리 더하기/빼기 다시 지수를 파워하면 결과 나옴. 함수 간 데이터 전달 시에 포인터로 전달 5. 영상 데이터 복사(CopyMeomory) memcpy 보다 CopyMemory가 더 빠름 이유 : 4의 배수로 끝나는 데이터를 더 빠르게 복제하도록 만들었다고 함. DirectDraw 서피에선 BitBlt 보다 FasrBlt가 속도가 10% 정도 향상(테스트 해봤 다고함) 6. 쓰레드 사용시 CreateThreadEX는 문제가 있다. 쓰레드가 돌아가다가 가끔씩 데이터 로스가 발생 한다. 마이크로소프트 사에서도 확인을 했다고 함. |