x86에 초점을 맞추고 있다고 생각하지만 일반적으로 32 비트에서 64 비트로 이동하는 데 관심이 있습니다.
논리적으로, 어떤 경우에는 상수와 포인터가 더 커져 프로그램이 더 커질 수 있음을 알 수 있습니다. 효율성을 위해 단어 경계에 메모리를 할당하려는 욕구는 할당 사이에 더 많은 공백을 의미합니다.
또한 x86의 32 비트 모드는 중첩되는 4G 주소 공간으로 인해 컨텍스트 전환시 캐시를 플러시해야한다고 들었습니다.
그렇다면 64 비트의 실제 이점은 무엇입니까?
그리고 보충 질문으로 128 비트가 더 좋을까요?
편집하다:
방금 첫 32/64 비트 프로그램을 작성했습니다. 16 바이트 (32b 버전) 또는 32 바이트 (64b 버전) 개체의 연결 목록 / 트리를 만들고 stderr에 많은 인쇄를 수행합니다. 정말 유용한 프로그램은 아니지만 일반적인 것은 아니지만 첫 번째 작업입니다.
크기 : 81128 (32b) v 83672 (64b)-큰 차이가 없습니다.
속도 : 17s (32b) v 24s (64b)-32 비트 OS (OS-X 10.5.8)에서 실행
최신 정보:
64b이지만 32b 포인터를 사용하는 새로운 하이브리드 x32 ABI (Application Binary Interface)가 개발 중이라는 점에 주목합니다. 일부 테스트의 경우 32b 또는 64b보다 코드가 작고 실행 속도가 빠릅니다.