Windows의 64 비트 버전이 32 비트 버전보다 큰 이유는 무엇입니까?


답변:


77

크기 불일치에는 몇 가지 이유가 있습니다.

  1. 64 비트 Windows에는 32 비트 소프트웨어를 실행할 수 있는 변환 계층 (Windows 64 비트의 Windows 32 비트 또는 " WoW64 ")이 포함되어 있습니다.
  2. 64 비트 Windows에는 32 비트 버전의 다양한 프로그램 (Internet Explorer) 및 라이브러리 (WinSxS 폴더에 있음)도 포함되어 있습니다. 주석에서 언급했듯이 이것이 크기 차이의 가장 중요한 이유입니다.
  3. 64 비트 메모리 주소는 32 비트 메모리 주소의 두 배 길이이므로 64 비트 포인터도 두 배입니다. 포인터를 많이 사용하는 64 비트 프로그램은 32 비트에 비해 눈에 띄게 커집니다.

하지만 완전성을 위해서, 그들이 - 처음과 마지막 이유는 선박 64 비트 윈도우와는 32 비트 소프트웨어만큼 많이 기여하지 않는 해야 간주합니다.


4
주요 시점 1 : sxs.iso 내부 의 폴더는 32 비트의 경우 177m, 64 비트의 경우 315m입니다. iso windows내부 의 폴더 install.wim는 32 비트의 경우 7.9g, 64 비트의 경우 11.9g입니다. 그 폴더 안에 우리는 WinSxS32 비트의 경우 3.9g, 64 비트의 경우 6.9g입니다. side-by-side stuff는 여기에서 가장 큰 데이터 덩어리이며 64 비트 버전의 Windows에서 32 비트 및 64 비트 앱 모두에 있습니다. 더 큰 바이너리와 일부 이중 버전의 응용 프로그램은 iso의 크기에 거의 영향을 미치지 않습니다.
akira

26
포인트 3이 이미지 크기에 어떤 영향을 미치는지 알 수 없습니다. 소스 코드에는 포인터 값이 거의 코딩되어 있지 않습니다. 소프트웨어 바이너리가 실행되면 RAM 이미지가 아닌 소프트웨어 바이너리의 공간 만 차지합니다.
Konrad Rudolph

10
(1)의 경우 모든 Wow64 .DLL이 Win7 Pro 설치에서 1MB 미만을 차지합니다. (3)의 경우 @KonradRudolph가 정확합니다. 본질적인 코드 팽창이 32 비트에서 64 비트로 이동 한 이유는 없습니다. 대부분의 코드가 여전히 32 비트에 불과하지만 (x86은 가변 길이 명령어 아키텍처 임) 몇 개의 opcode가 변경되었습니다. 이 불일치의 대부분은 (2)에서 발생합니다.
획기적인

3
@akira sxs폴더는 (1)이 아니라 (2)와 관련이 있습니다. 32 비트 DLL이 실행 되더라도 나란히 어셈블리 위해 WOW64에 포함되지 않은 아래 하는 WoW64. 그러나 WinSxS 폴더에는 기본적으로 32 비트 및 64 비트 버전의 DLL이있는 각각의 DLL이 필요한 프로그램에 32 비트 및 64 비트 바이너리가 제공 됩니다.
획기적인

3
@CrisStringfellow : 아무도 의심하지 않았습니다. 그러나 iso 이미지의 전체 크기에 미치는 영향 은 거의 없습니다. 크기 증가의 주요 부분은 64 비트 및 32 비트 항목 (일부 앱, 많은 dll (대부분 WinSxS.iso 의 폴더 내부에 있음 ))을 제공하기 때문에 발생합니다.
akira

11

64 비트 버전에서 Microsoft는 추가 소프트웨어를 배포합니다. 예를 들어 두 가지 버전의 Internet Explorer (64 및 32 비트)가 있습니다. 또 다른 예는 Win32-applications 의 전체 런타임 시스템입니다 .
또한 이진 코드가 집니다. 아마도 이것의 합은 큰 차이를 만듭니다.


2

64 비트 버전은 일반적으로 몇 가지 이유로 32 비트 버전보다 큽니다.

가장 먼저 고려해야 할 것은 컴파일러 유형과 소프트웨어가 실행되는 런타임 환경입니다. 소프트웨어가 원시 코드를 생성하고 런타임 환경없이 실행되는 컴파일러로 빌드 된 경우 생성 된 코드 크기에서 약간의 차이를 볼 수 있습니다. 이는 CISC 프로세서의 더 큰 명령어 세트와 관련이 있습니다.

둘째, 소프트웨어가 .NET과 같은 런타임 환경에서 실행되도록 컴파일 된 경우 컴파일러는 동일한 (중간) 코드를 생성하므로 크기 차이가 나타나지 않습니다.

마지막으로 64 비트 버전의 Windows에는 일부 32 비트 버전에 해당하는 완전한 64 비트 버전이 포함되어 있습니다. 일부 소프트웨어는 32 비트이므로 Windows 64 비트에서 수정하지 않고 실행해야하기 때문에이 작업이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.