Tại sao phiên bản Windows 64 bit lớn hơn phiên bản 32 bit?


Câu trả lời:


77

Có một số lý do cho sự khác biệt kích thước:

  1. Windows 64 bit chứa một lớp dịch (Windows 32 bit trên Windows 64 bit hoặc " WoW64 ") cho phép nó chạy phần mềm 32 bit.
  2. Windows 64 bit cũng chứa các phiên bản 32 bit của các chương trình khác nhau (Internet Explorer) và thư viện (trong thư mục WinSxS). Như đã lưu ý trong các ý kiến, đây là lý do quan trọng nhất cho sự khác biệt kích thước.
  3. Địa chỉ bộ nhớ 64 bit dài gấp đôi địa chỉ bộ nhớ 32 bit, do đó, con trỏ 64 bit cũng dài gấp đôi. Các chương trình 64 bit sử dụng nhiều con trỏ sẽ lớn hơn đáng kể so với các đối tác 32 bit của chúng.

Những lý do đầu tiên và cuối cùng không đóng góp nhiều như phần mềm 32 bit đi kèm với Windows 64 bit - nhưng vì mục đích hoàn chỉnh, chúng nên được xem xét.


4
chủ yếu là do điểm 1: sxsthư mục bên trong .iso là 177m cho 32 bit, 315m cho 64 bit. các windowsthư mục bên trong install.wimbên trong iso là 7.9g cho 32bit, 11.9g cho 64bit. và bên trong thư mục đó, chúng ta có một lần nữa WinSxSlà 3,9g cho 32 bit và 6,9g cho 64 bit. các công cụ phụ là phần dữ liệu lớn nhất ở đây và nó có cho cả ứng dụng 32 bit và 64 bit trong phiên bản 64 bit của windows. có các nhị phân lớn hơn và một số phiên bản kép của ứng dụng hầu như không ảnh hưởng đến kích thước của các isos.
akira

26
Tôi không thấy điểm 3 sẽ ảnh hưởng đến kích thước hình ảnh như thế nào. Rất ít giá trị con trỏ được mã hóa cứng vào mã nguồn. Chỉ những người sẽ chiếm dung lượng trong tệp nhị phân phần mềm (chứ không phải hình ảnh RAM khi phần mềm được chạy).
Konrad Rudolph

10
Đối với (1), tất cả các Wow64 .DLL chiếm ít hơn 1MB khi cài đặt Win7 Pro của tôi. Đối với (3), @KonradRudolph là chính xác. Không có lý do thực sự nào cho sự phình to mã nội tại từ việc chuyển từ 32 sang 64 bit - một vài opcode đã thay đổi, mặc dù hầu hết vẫn chỉ rộng 32 bit (x86 là kiến ​​trúc lệnh có độ dài thay đổi). Phần lớn sự khác biệt này phát sinh từ (2).
Đột phá

3
@akira sxsThư mục phải làm với (2), không phải (1). Các tập hợp bên cạnh không phải là một phần của WoW64, mặc dù các DLL 32 bit được thực thi trong WoW64. Tuy nhiên, thư mục WinSxS có mặt để cung cấp các tệp nhị phân 32 bit và 64 bit cho các chương trình yêu cầu DLL tương ứng - về cơ bản có cả phiên bản DLL 32 bit và 64 bit.
Đột phá

3
@CrisStringfellow: không ai nghi ngờ điều đó. nhưng hiệu ứng trên kích thước tổng thể của hình ảnh iso gần như không. khối chính của việc tăng kích thước là do cung cấp nội dung 64 bit VÀ 32 bit (một số ứng dụng, rất nhiều dll [chủ yếu được tìm thấy trong WinSxSthư mục trong .iso]).
akira

11

Trong các phiên bản 64 bit, Microsoft triển khai phần mềm bổ sung. Ví dụ: có hai phiên bản Internet Explorer (64 và 32 bit). Một ví dụ khác là toàn bộ hệ thống thời gian chạy cho các ứng dụng Win32 .
Ngoài ra, mã nhị phân sẽ trở nên lớn hơn . Có lẽ tổng của những điều này làm cho sự khác biệt lớn.


2

Phiên bản 64 bit thường lớn hơn phiên bản 32 bit vì một vài lý do.

Điều đầu tiên cần xem xét là loại trình biên dịch và môi trường thời gian chạy nơi phần mềm thực thi. Nếu phần mềm được xây dựng với trình biên dịch tạo mã gốc và chạy mà không có môi trường thời gian chạy, có thể thấy sự khác biệt nhỏ về kích thước mã được tạo, có liên quan đến tập lệnh lớn hơn trong bộ xử lý CISC.

Thứ hai, nếu phần mềm được biên dịch để chạy trong môi trường thời gian chạy, chẳng hạn như .NET, bạn sẽ không thấy bất kỳ sự khác biệt nào về kích thước, vì trình biên dịch tạo cùng mã (trung gian).

Cuối cùng, phiên bản Windows 64 bit chứa phiên bản 64 bit hoàn chỉnh với một số phiên bản 32 bit. Điều này là bắt buộc vì một số phần mềm là 32 bit và cần chạy mà không cần sửa đổi trong Windows 64 bit.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.