공부/프로그램

프로그래밍 팁

smstock 2010. 4. 8. 09:18

1. Hardware
   - 자주 사용하는 자료구조는 32바이트의 배수로 정렬시켜 사용 -> 
   - 메모리 관리 함수는 따로 만들어 사용 -> 동적 메모리 할당/해제의 부하를 줄이기 위해 메모리 풀(pool) 사용 권장

2. Compiler
   - 컴파일러(Visual Studio)의 최적화 옵션에서 '속도 최적화' 대신에 '코드 크기 최소화' 설정이 캐시 성능을 향상시켜
      좀 더 빠른 코드를 얻을 수 있음

3. Syntex
   - Switch() 사용시에는 연속된 수치 사용 -> 테이블 형태로 만들어서 조건분기문보다 빠르게 사용됨
      case 0:
      case 1:
      case 2:
   - for() < while() < do ~ while() 의 빠른 속도를 보여줌(캐시미스와 관련)
   - timeGetTime()
     컴퓨터가 켜진 시간부터 카운팅 됨. 오래 켜두면(49.71일) 오버 플로우 발생

4. Math
   - 나눗셈 보다는 곱셈 으로 표현 -> 뺄셈(보수를 더함), 곱셈(여러번의 덧셈), 나눗셈(보수화된 덧셈을 여러번 수행)
   - 수학함수는 가급적 피라고 룩업 테이블이나 비슷한 형태로 간략한 함수로 만들어서 사용
   - 부동 소수점은 double 보다 float를 사용 -> double(39 cycle), float(19/8 cycle) 이 걸림
   - float 형 일때는 반드시 뒤에 f를 붙여라 -> 더 빠름.
   - 전위 연산자(++a 등)를 사용하라.

5. class
   - 멤버 함수에는 const 를 사용하자 -> 한정자를 사용하면 컴파일라가 좀더 나은 최적화를 해줄 수 있다.