프로그래밍/의문

32비트 OS(운영체제)에서 64비트 OS로 바꾸면 성능이 꼭 향상만 될까?

제페 2015. 2. 4. 18:08
반응형

꼭 그렇지는 않다. 


64비트의 넓은 주소 공간은 성능을 떨어뜨리는 요인이다. 

포인터가 4바이트에서 8바이트로 커지고, 일부 변수는 크기가 커지기도 한다. 

변수의 크기가 늘어났다는 것은 메모리 소요량이 커졌다는 것과 같아서 

캐시, 레지스터의 공간을 더 빠르게 소모하게 되므로 이런 부분에서 성능 저하가 일어난다. 


struct s

{

  int* ptr[8];

};


구조체 pod가 32비트로 컴파일이 된다면 4(size of 32bit ptr)*8 의 사이즈로 총 32바이트를 차지하므로 

64바이트 캐시라인 하나에 구조체가 두 개 들어갈 수 있지만, 

64비트로 컴파일이 되면 크기가 2배로 되고 캐시라인에 하나의 구조체밖에 들어가질 못한다. 

따라서 이러한 메모리 점유율 증가는 오히려 프로그램의 구동 성능을 떨어뜨릴 수 있다.

반응형