Tôi nên triển khai chỉ 32 bit hoặc cả hai phiên bản 32 và 64 bit cho Windows?


13

Tôi có một ứng dụng đa nền tảng được viết bằng ngôn ngữ biên dịch.

  • Đối với Linux, thông thường có cả hai bản dựng amd64 và i386 cho người dùng, vì vậy người dùng có thể chọn phiên bản, phù hợp với môi trường hiện tại của nó.
  • Trong Mac, người ta thường tạo ra Universal Binary, vì vậy nó có thể hỗ trợ nhiều phiên bản máy tính Apple. Hoặc chỉ cung cấp phiên bản 64 bit, vì tất cả các máy tính hiện tại của Apple đều sử dụng kiến ​​trúc và hệ điều hành 64 bit.

Tôi không muốn gây nhầm lẫn cho người dùng, hỏi "Bạn là kiến ​​trúc nào?", Nhưng việc triển khai chỉ 32 bit là ý tưởng tồi, vì chương trình này sử dụng một số phép thuật tối ưu hóa 64 bit và chạy nhanh hơn nhiều trên các máy này.

Ý tưởng của tôi:

  • Cài đặt cả hai phiên bản ứng dụng 32 và 64 bit và chọn vào thời gian chạy. (Yêu cầu trình bao bọc, do đó, việc tạo ứng dụng nhấp và khởi chạy (như uTorrent) sẽ khó khăn).
  • Phát hiện kiến ​​trúc bằng cách sử dụng User-agenttrên trang web, do đó người dùng có thể tự động tải xuống phiên bản phù hợp (và tạo liên kết đến "phiên bản thay thế"). (Đó là phong cách Google Chrome)
  • Buộc người dùng sử dụng ứng dụng 32 bit và biến phiên bản 64 bit thành "chỉ dành cho chuyên gia"? (như VLC)

Tôi nên làm gì trong Windows?


Ứng dụng của bạn có được lợi từ quá trình 64 bit không?
CodeInChaos

Có, nó sử dụng thư viện mật mã, chạy nhanh hơn trong 64 bit.
Alexander Shishenko

Nhanh hơn bao nhiêu?
Robert Harvey

2
Ngoài ra, không có tùy chọn xây dựng AnyCPU trong Visual Studio? blog.microsoft.co.il/sasha/2012/04/04/ khăn
Robert Harvey

1
Tôi nên đề cập rằng, trình biên dịch đó là mã gốc (tôi viết bằng C ++, không có phần mở rộng C ++ / CLI), không phải .NET.
Alexander Shishenko

Câu trả lời:


16

Tôi thực sự không nghĩ rằng sự phức tạp quá lớn đối với người dùng cuối phải chọn tùy chọn 32 bit hoặc 64 bit khi tải xuống. Nhưng nếu bạn có thể sử dụng các chuỗi tác nhân người dùng để đưa ra một gợi ý tốt hơn.

Một tùy chọn khác là để trình cài đặt của bạn phát hiện và cài đặt nhị phân chính xác cho nền tảng của người dùng. Điều đó làm cho tải xuống lớn hơn, nhưng sau đó người dùng không phải suy nghĩ về nó. Nếu bạn đi theo cách tiếp cận đó, bạn sẽ muốn cung cấp một số cách để người dùng ghi đè phát hiện trong trường hợp họ cần một bản dựng cụ thể vì bất kỳ lý do gì.


7
Nếu người dùng của bạn không có kỹ thuật, thì bạn đang ném những từ lớn vào họ (không có ý định chơi chữ).
dùng253751

3
@GrandmasterB Người dùng không có kỹ thuật sẽ không biết sự khác biệt giữa phiên bản 32 bit và phiên bản 64 bit và sẽ không biết họ cần cái nào.
Philipp

3
@Philipp Điều này có thể được giải quyết dễ dàng bằng cách thêm hai cụm từ đơn giản như trên mạng hoạt động tốt trong hầu hết các trường hợp, và có thể nhanh hơn trên một số máy, như nhiều trang tải xuống.
5gon12eder

1
@Philipp: không, hoàn toàn ngược lại (đối với tùy chọn thứ hai). Trình cài đặt tự động chọn đúng phiên bản, không cần hiển thị bất cứ thứ gì kỹ thuật. Có thể có nút "tùy chọn cài đặt mở rộng" (nhưng miễn là người dùng không nhấn nút đó, không có gì giống như phiên bản 32 hoặc 64 bit được hiển thị.
Doc Brown

1
@ 5gon12eder Trên thực tế, phiên bản 64 bit sẽ có khả năng hoạt động tốt trong hầu hết các trường hợp. Hãy cùng xem thống kê của Steam Survey . Nó cho thấy, hơn 83% máy Windows chạy HĐH 64 bit.
Alexander Shishenko

7

Chà, trước tiên hãy tìm hiểu xem sử dụng phiên bản 64-bit có bao giờ có lợi hay không:

  • Tập dữ liệu được xử lý có thể đủ lớn để cần không gian địa chỉ 64 Bit để hoạt động không?
  • Phiên bản 64 Bit có hiệu quả hơn hay nhanh hơn không?
  • Có bất kỳ kịch bản tương tác nào nhạy cảm với bitness chương trình của bạn không, việc thay đổi giao diện để khiến nó không nhạy cảm với bitness không phải là một lựa chọn và dù sao thì bitness không phải là của bạn để ra lệnh?

Nếu câu trả lời là không cho tất cả, hãy cân nhắc việc không có phiên bản 64-bit nào cả.

Bây giờ, nếu có một lợi thế rõ ràng khi sử dụng 64 Bit khi bạn có thể:
Làm cho nó thoải mái nhất có thể cho người dùng của bạn mà không phạt bất kỳ ai biết.

  • Cung cấp một lần tải xuống nếu không quá nhiều chi phí, cài đặt phiên bản tốt nhất theo mặc định (cho phép ghi đè bằng tùy chọn dòng lệnh hoặc như vậy đối với các chuyên gia muốn xây dựng 32-bit trên 64-bit).
  • Mặt khác, cung cấp cả hai tải xuống riêng biệt (nếu lợi thế tiềm năng để sử dụng 64-Bit là đủ nhỏ, hãy ẩn cái đó một chút).
  • Mặc dù bạn có thể cung cấp trình tải xuống để chỉ chọn và tải xuống các phần cần thiết, có khả năng giảm kích thước tải xuống theo đơn đặt hàng cường độ nếu có các phần tùy chọn rất lớn, đánh dấu nổi bật là trình cài đặt trực tuyến và liên kết với trình cài đặt ngoại tuyến.
    (Bạn có thể (và có lẽ nên) cho phép sử dụng lại những gì nó tải xuống, bao gồm tùy chọn tải xuống mọi thứ, ít nhất là nếu bạn không cung cấp trình cài đặt ngoại tuyến đầy đủ.)

4

Ngày nay, mọi người và các trang web có xu hướng tự xử lý việc này và để người dùng chọn nếu họ muốn . Vì vậy, sử dụng User-agentchuỗi là một cách tốt để đi. IMO cũng làm cho ứng dụng và trang web của bạn trông chuyên nghiệp hơn (mọi người thích công cụ hơn nếu nó có khả năng tự điều chỉnh liên quan).

Đặt một liên kết / lựa chọn phiên bản là tốt vì một số chuyên gia hoặc những người muốn có được một phiên bản khác có thể đi và có được nó.

Bạn cũng có thể đặt một ghi chú dán trên trang chọn phiên bản (tương tự như phiên bản này ) giải thích cách người dùng có thể kiểm tra Loại hệ thống hệ điều hành (còn gọi là nhấp chuột phải Computervà chọn thuộc tính blah blah ...) để những người tò mò có thể kiểm tra và chắc chắn rằng những gì bạn cung cấp là phiên bản phù hợp.

Loại hệ điều hành


3

Có trình cài đặt 32 bit không chứa tệp thực thi. Có nó phát hiện nền tảng đích mà nó chạy trên và sau đó tải xuống tệp nhị phân chính xác từ máy chủ của bạn.


3
Nếu bạn đang làm điều này, hãy đảm bảo rằng bạn cũng có sẵn các phiên bản cuối cùng thực tế để các chuyên gia tải xuống trực tiếp. Nhiều người làm CNTT chuyên nghiệp thích có thể thiết lập cài đặt ngoại tuyến (ví dụ: để cài đặt có thể tái tạo chính xác sau này).
Jules

2
@Jules trường hợp sử dụng khác là máy bị ngắt kết nối. Ngay cả trong năm 2015, không phải máy nào cũng có quyền truy cập trực tiếp vào Internet công cộng.
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.