Czy należy wdrożyć tylko wersje 32-bitowe, czy zarówno wersje 32-, jak i 64-bitową dla systemu Windows?

13

Mam wieloplatformową aplikację napisaną w skompilowanym języku.

  • W systemie Linux zwykle dostępne są kompilacje zarówno amd64, jak i i386, dzięki czemu użytkownik może wybrać wersję odpowiednią dla bieżącego środowiska.
  • W Macu powszechne jest tworzenie Universal Binary, aby mógł obsługiwać wiele wersji komputerów Apple. Lub po prostu zapewnij wersję 64-bitową, ponieważ wszystkie obecne komputery Apple używają 64-bitowej architektury i systemu operacyjnego.

Nie chcę wprowadzać użytkowników w błąd, pytając „Jaką architekturą jesteś?”, Ale wdrażanie tylko wersji 32-bitowej jest złym pomysłem, ponieważ ten program używa 64-bitowej magii optymalizacji i działa znacznie szybciej na tych komputerach.

Moje pomysły:

  • Zainstaluj zarówno 32-, jak i 64-bitową wersję aplikacji i wybierz ją w czasie wykonywania. (Wymaga otoki, więc tworzenie aplikacji typu „kliknij i uruchom” (jak uTorrent) będzie trudne).
  • Wykryj architekturę za pomocą User-agentstrony internetowej, aby użytkownik mógł automatycznie pobrać odpowiednią wersję (i utworzyć link do „wersji alternatywnych”). (Jest to styl Google Chrome)
  • Zmusić użytkownika do korzystania z aplikacji 32-bitowej i uczynić wersję 64-bitową „tylko dla ekspertów”? (jak VLC)

Co powinienem zrobić w systemie Windows?

Alexander Shishenko
źródło
Czy Twoja aplikacja korzysta z procesu 64-bitowego?
CodesInChaos
Tak, korzysta z biblioteki kryptograficznej, która działa szybciej w wersji 64-bitowej.
Alexander Shishenko,
O ile szybciej?
Robert Harvey,
2
Ponadto, czy w programie Visual Studio nie ma opcji kompilacji AnyCPU? blogs.microsoft.co.il/sasha/2012/04/04/…
Robert Harvey
1
Powinienem wspomnieć, że skompilowany jest kod natywny (piszę w C ++, bez rozszerzeń C ++ / CLI), a nie .NET.
Alexander Shishenko,

Odpowiedzi:

16

Naprawdę nie uważam, że to ogromna złożoność dla użytkownika końcowego, który musi wybrać opcję 32-bitową lub 64-bitową podczas pobierania. Ale jeśli możesz użyć ciągów klienta użytkownika, aby sugestia była jeszcze lepsza.

Inną opcją jest wykrycie i zainstalowanie przez instalatora poprawnego pliku binarnego dla platformy użytkownika. To powoduje większe pobieranie, ale wtedy użytkownik nie musi o tym myśleć. Jeśli wybierzesz takie podejście, będziesz chciał dać użytkownikowi możliwość obejścia wykrycia na wypadek, gdyby potrzebował określonej wersji z jakiegokolwiek powodu.

Grandmaster B.
źródło
7
Jeśli Twoi użytkownicy są nietechniczni, rzucasz na nich duże słowa (nie ma zamiaru używać słów).
user253751,
3
@GrandmasterB Użytkownicy nietechniczni nie znają różnicy między wersją 32-bitową a wersją 64-bitową i nie będą wiedzieć, której potrzebują.
Philipp
3
@Philipp Które można łatwo rozwiązać, dodając dwa proste wyrażenia, takie jak „działa dobrze w większości przypadków” i „może być szybsze na niektórych komputerach”, jak robi to wiele stron pobierania.
5gon12eder
1
@Filipp: nie, wręcz przeciwnie (dla drugiej opcji). Instalator automatycznie wybiera odpowiednią wersję, bez potrzeby wyświetlania jakichkolwiek informacji technicznych. Może istnieć przycisk „opcji rozszerzonej instalacji” (ale dopóki użytkownik go nie naciśnie, nie wyświetla się wersja 32- lub 64-bitowa.
Doc Brown
1
@ 5gon12eder W rzeczywistości wersja 64-bitowa „działa dobrze w większości przypadków”. Rzućmy okiem na statystyki Steam Survey . Pokazuje, że ponad 83% komputerów z systemem Windows ma 64-bitowy system operacyjny.
Alexander Shishenko,
7

Cóż, najpierw dowiedz się, czy korzystanie z wersji 64-bitowej byłoby kiedykolwiek korzystne:

  • Czy przetwarzany zestaw danych może być wystarczająco duży, aby do działania potrzebować 64-bitowej przestrzeni adresowej?
  • Czy wersja 64-bitowa jest coraz bardziej wydajna czy szybsza?
  • Czy są jakieś scenariusze współdziałania wrażliwe na bitowość programów, zmiana interfejsu w celu uczynienia go niewrażliwym na bitity nie jest opcją, a bitów i tak nie należy narzucać?

Jeśli odpowiedź jest przecząca dla wszystkich, zastanów się, czy w ogóle nie mieć wersji 64-bitowej.

Teraz, jeśli istnieje wymierna korzyść z używania 64-bitowej wersji, gdy możesz:
Ułatw swoim użytkownikom jak najwięcej, bez nadmiernego karania tych, którzy wiedzą.

  • Podaj pojedynczy plik do pobrania, jeśli nie jest to zbyt duży narzut, który domyślnie instaluje najlepszą wersję (zezwól na zastąpienie z opcją wiersza polecenia lub podobną dla ekspertów, którzy chcą wersji 32-bitowej na wersji 64-bitowej).
  • W przeciwnym razie zapewnij oba osobne pliki do pobrania (jeśli potencjalna zaleta korzystania z wersji 64-bitowej jest wystarczająco mała, ukryj ją trochę).
  • Podczas mogłyby zapewnić downloader za wybór i pobierając tylko potrzebne części, które mogą potencjalnie zmniejszyć download-rozmiar o rzędy wielkości, jeśli istnieją ogromne części opcjonalne, znak, że w widocznym miejscu jako internetowym instalatora i również link do trybu offline instalatora.
    (Możesz (i prawdopodobnie powinien) zezwolić na ponowne wykorzystanie tego, co pobiera, włącz opcję pobierania wszystkiego, przynajmniej jeśli nie udostępnisz pełnego instalatora offline).
Deduplikator
źródło
4

Obecnie ludzie i strony radzą sobie z tym samodzielnie i pozwalają użytkownikowi wybrać, czy chcą . Tak więc używanie User-agentsznurka jest dobrym sposobem. IMO, które sprawiają, że twoja aplikacja i strona wyglądają bardziej profesjonalnie (ludzie bardziej lubią takie rzeczy, jeśli są w stanie sami dokonać odpowiednich korekt).

Umieszczenie linku do wyboru wersji / wyboru jest dobre, ponieważ niektórzy eksperci lub osoby, które chcą uzyskać inną wersję, mogą ją pobrać.

Możesz także umieścić notatkę na stronie wyboru wersji (podobnej do tej ) wyjaśniającą, w jaki sposób użytkownicy mogą sprawdzić typ systemu operacyjnego (inaczej kliknięcie prawym przyciskiem myszy Computeri wybranie właściwości bla bla ...), aby ciekawi ludzie mogli to sprawdzić i mieć pewność że to, co oferujesz, jest odpowiednią wersją.

Typ systemu operacyjnego

Upadły anioł
źródło
3

Posiadaj 32-bitowy instalator, który nie zawiera pliku wykonywalnego. Niech wykryje platformę docelową, na której działa, a następnie pobierze odpowiedni plik binarny z serwera.

Philipp
źródło
3
Jeśli to robisz, upewnij się, że masz również dostępne ostateczne wersje dla ekspertów do bezpośredniego pobrania. Wiele profesjonalnych informatyków woli skonfigurować instalację offline (np. Aby instalacja była później dokładnie powtarzalna).
Jules
2
@Jules innym przypadkiem użycia są odłączone maszyny. Nawet w 2015 r. Nie każda maszyna ma bezpośredni dostęp do publicznego Internetu.