-
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배로 되고 캐시라인에 하나의 구조체밖에 들어가질 못한다.
따라서 이러한 메모리 점유율 증가는 오히려 프로그램의 구동 성능을 떨어뜨릴 수 있다.
반응형'프로그래밍 > 의문' 카테고리의 다른 글
컴파일러 경고 warning C4127 (0) 2015.03.20 코딩 스타일은 개발자의 지문 (0) 2015.02.12 bad_descriptor 오류와 PeerManager (0) 2014.10.31 [c++] 람다 캡쳐를 잘못 사용했다. (0) 2014.07.10 null문자가 없는 문자로 string을 초기화 시킨 문제 (0) 2014.05.06