Jak ważne jest posiadanie programów 64-bitowych w 64-bitowym systemie operacyjnym?

40

Niedawno zaktualizowałem system do 64-bitowego systemu operacyjnego (Windows 7) ze starej wersji 32-bitowej. Zauważyłem, że podczas gdy kilka aplikacji jest dostępnych w wersji 64-bitowej (np. Klient DC, Tortoise SVN, sterownik karty graficznej), wiele z nich to nadal aplikacje 32-bitowe (np. Firefox, Adobe Reader).

Jak ważne jest posiadanie aplikacji 64-bitowych (pod względem wydajności)? Używam mojego laptopa do wielu różnych rzeczy, takich jak gry, kodowanie itp.

apoorv020
źródło
1
Poczekaj, aż zaczniesz grać w swoje ulubione stare gry z 16-bitowymi instalatorami. Kompatybilność wsteczna dla tych jest zapewniona w XP64 / 32, Vista32 i 7 32, ale nie w Vista64 lub 7 64.
Alain
1
@Alain: Nigdy nie byłem w stanie uruchomić starych gier na moim 32-bitowym systemie operacyjnym, więc prawdopodobnie nie jest to zbyt duża strata.
apoorv020
1
Jest tak, jeśli kochasz Master of Orion II i Populous the Beginning tak samo jak ja;) W każdym razie Windows Virtual PC + stara płyta instalacyjna systemu operacyjnego załatwia sprawę i ratuje Cię przed podwójnym uruchomieniem.
Alain
Największą poprawą, którą zauważyłem z perspektywy użytkownika, jest możliwość ładowania większych plików niż 2 GB. Szczególnie praca z dużymi obrazami w oprogramowaniu Adobe.
Svardskampe,
@Alain, ponieważ różne oprogramowanie VM ma różne poziomy obsługi sterowników audio / wideo dla starych systemów operacyjnych, nawet to nie zawsze będzie działać. Miałem trochę czasu na uruchomienie Jewels of the Oracle II .
Synetech,

Odpowiedzi:

35

Nie sądzę, że to takie ważne, aby mieć 64-bitowe aplikacje per se.

Zaletą 64-bitowej aplikacji jest to, że może:

  • Uzyskaj dostęp do znacznie więcej pamięci¹
  • Wykonaj 64-bitowe operacje rejestru. ²

¹ Program 64-bitowy może być nieco szybszy (w zależności od tego, jak działa). Jeśli twoja aplikacja wymaga dużej ilości pamięci (jak Photoshop, renderowanie 3D itp.), Posiadanie wersji 64-bitowej zapewni dostęp do całej pamięci komputera. Bez tego będzie ograniczony do około 2 GB. Jest to zależne od aplikacji , więc dwie aplikacje mogą uzyskać dostęp do 4 GB.

² Wykonanie operacji 64-bitowej w 64-bitowym systemie operacyjnym jest szybsze niż wykonanie jej w 32-bitowym systemie operacyjnym - wykonanie tej samej czynności wymagałoby co najmniej 2 operacji 32-bitowych.

Jeśli chodzi o stabilność, nie powinno być różnicy między aplikacjami 64-bitowymi i 32-bitowymi.

Majenko
źródło
Myślę, że mój klient DC robi teraz haszowanie plików ze znacznie lepszą prędkością.
apoorv020
Ma to sens, jeśli robi skróty. Niektóre z nich można zoptymalizować dla większych szerokości bitów.
Joshua Nurczyk
Możliwe jest również przyjmowanie założeń dotyczących możliwości procesora za pomocą x86-64, takich jak obsługa SSE3.
afrazier
4
Domyślnie aplikacje działające w 32-bitowym systemie Windows będą miały dostęp tylko do 2 GB pamięci. System operacyjny jako całość ma dostęp do nieco ponad 3 GB danych, które mogą być współużytkowane przez wszystkie aplikacje.
Michael Steele,
@Michael Steele ma rację. Maksymalna dostępna pamięć dla systemu wynosi zazwyczaj 3,12 GB, reszta jest zarezerwowana na adresowanie sprzętu. Aby uzyskać bardziej szczegółowe konto, patrz tutaj: support.microsoft.com/kb/929605
Steven Evers
10

Największą zaletą korzystania z 64-bitowej aplikacji w 64-bitowym systemie operacyjnym jest to, że masz pełny dostęp do całej pamięci dostępnej w systemie. Dzięki 64-bitowym adresom pamięci aplikacja może uzyskać dostęp do większej ilości pamięci niż jej 32-bitowy odpowiednik.

Ponadto programy 64-bitowe będą działały „lepiej” niż programy 32-bitowe, ponieważ używają natywnej architektury systemu. Operacje takie jak odczyty pamięci są wykonywane natywnie itd. Oznacza to, że system operacyjny nie musi wykonywać żadnej dodatkowej pracy, tłumacząc (pakowanie / rozpakowywanie pamięci itp.) Poleceń używanych przez aplikację.

Jednak większość programów - takich jak Firefox, Word, Adobe Reader itp. - spędza większość czasu na oczekiwaniu na dane wejściowe użytkownika, więc wydajność niekoniecznie jest najważniejsza. Również większość z tych aplikacji (w tej chwili) nie wymaga dodatkowej pamięci, do której dostęp do wersji 64-bitowej zapewniłby im dostęp.

Programy takie jak sterowniki grafiki muszą działać wydajnie i być może mają dostęp do wyższych rejestrów pamięci, a więc muszą być 64-bitowe.

ChrisF
źródło
1
W wielu przypadkach sterowniki systemowe muszą być 64-bitowe, jeśli będą potrzebować dostępu do niektórych rejestrów pamięci. Wierzę, że pewne rzeczy będą działać z 32-bitowymi sterownikami w systemie 64-bitowym, ale nic tak intensywnego jak karta graficzna
Joshua Nurczyk
1
@Joshua: Sterowniki systemowe naprawdę zależą od systemu operacyjnego i łuku maszyny. Niektóre 64-bitowe procesory nie mają trybów, po prostu dodano instrukcje 64-bitowe. x86_64 ma kosztowny przełącznik trybu, pozwalający na przejście z wersji 64 na 32 iz powrotem, więc prawie zawsze wymagana jest wersja 64-bitowa.
Zan Lynx,
Wyjaśnij, co masz na myśli, mówiąc „lepiej”.
glenviewjeff
5

Tak, możesz bez problemu uruchamiać aplikacje 32-bitowe w 64-bitowym systemie operacyjnym, ALE. Jest jeszcze jeden problem marnowania miejsca - biblioteki. Zasadniczo aplikacja załadowałaby odpowiednią bibliotekę, której potrzebuje, ale problem polega na tym, że biblioteki 64-bitowe nie są kompatybilne z bibliotekami 32-bitowymi i odwrotnie.

Oczywiście zwykle potrzebne biblioteki są dostarczane z samą aplikacją, ale te podstawowe - Windows - są przechowywane dwukrotnie - jedna z nich - 32-bitowa, a druga - 64-bitowa.

Zajmują również więcej pamięci RAM, jeśli masz jedną 32-bitową aplikację, a drugą 64-bitową działającą jednocześnie - obie aplikacje załadowały własną wersję biblioteki, więc używają więcej pamięci RAM niż mogłyby, gdyby obie korzystały z tej samej biblioteki.

Aby zaoszczędzić pamięć RAM i miejsce na dysku twardym - spróbuj uruchomić i zainstalować aplikacje tylko 64-bitowe, a instalować 32-bitowe tylko wtedy, gdy nie możesz znaleźć wersji 64-bitowej. Teraz coraz więcej aplikacji jest dostarczanych w obu wersjach.

Evengard
źródło
4

Odpowiedź brzmi „to zależy”

Niektóre 32-bitowe „aplikacje” nie będą działać w trybie 64-bitowym, na przykład sterowniki grafiki i rozszerzenia powłoki (takie jak Tortoise SVN). W takim przypadku potrzebujesz wersji 64-bitowej.

W przypadku innych normalnych aplikacji zależy to od tego, co robią.

Jeśli na przykład masz 16 GB pamięci i korzystasz z serwera SQL z bardzo dużą bazą danych, bardzo ważna jest 64-bitowa wersja SQL.

Jeśli jednak masz 4 GB pamięci (z prawie 1 GB „skradzionej” przez kartę graficzną), możesz mieć mało pamięci i używanie 64-bitowych aplikacji (które mogą wymagać więcej pamięci) może faktycznie spowolnić system.

Nawet ignorując kwestie dotyczące pamięci, nie można z całą pewnością stwierdzić, że aplikacja 32-bitowa działająca w trybie 64-bitowym będzie szybsza lub wolniejsza niż odpowiednik 64-bitowy, ani też, czy aplikacja będzie szybsza czy wolniejsza niż podczas pracy na 32 -bitowy system operacyjny.

Osobiście, jeśli szukam narzędzia lub małej aplikacji dla mojego komputera, sprawdzę, czy działa on z 64-bitowym systemem operacyjnym, ale czy aplikacja jest 32-bitowa czy 64-bitowa, zwykle nie jest wysoko na mojej liście priorytetów .

Według Process Explorer mam obecnie uruchomionych 25 64-bitowych procesów i 28 32-bitowych procesów, ignorując Chrome)

sgmoore
źródło
3

Należy pamiętać, że w 64-bitowym systemie Windows 32-bitowe aplikacje są uruchamiane przez warstwę emulacji znaną jako WOW64 , która nakłada pewne dodatkowe ograniczenia, których nie ma w przypadku uruchamiania w 32-bitowym systemie operacyjnym Windows.

Od https://msdn.microsoft.com/en-us/library/aa384219(v=vs.85).aspx :

Wydajność i zużycie pamięci w ramach WOW64

  • Sprzęt procesora. Emulacja instrukcji wykonywana jest na chipie. Na procesorze x64 instrukcje są wykonywane natywnie przez mikro-architekturę. Dlatego szybkość wykonywania w WOW64 na x64 jest podobna do jego prędkości w 32-bitowym systemie Windows. W procesorze Intel Itanium w emulację zaangażowanych jest więcej oprogramowania, w wyniku czego spada wydajność.
  • API thunk overhead. Ten narzut jest niewielki w porównaniu do samego wywołania jądra NT. Funkcje jądra NT mają być wywoływane rzadko.
  • Rozmiar pamięci wirtualnej. W procesorze Intel Itanium WOW64 powoduje znaczne obciążenie, jeśli dwa lub więcej wystąpień tej samej 32-bitowej aplikacji działa jednocześnie. Wynika to z natywnych stron o wielkości 8 KB na Intel Itanium, co komplikuje emulację natywnych stron o wielkości 4 KB w architekturze x86 (więcej stron jest oznaczonych jako zapisywalne; wszystkie zapisywalne strony są prywatne dla procesu). Może to negatywnie wpłynąć na skalowalność usług terminalowych na niektórych procesorach. Nie dotyczy to procesora x64.
  • Zestaw roboczy. WOW64 zwiększa rozmiar zestawu roboczego aplikacji.

  • WOW64 umożliwia aplikacjom 32-bitowym korzystanie z 64-bitowego jądra. Dlatego aplikacje 32-bitowe mogą używać większej liczby uchwytów jądra i uchwytów okien. Jednak aplikacje 32-bitowe mogą nie być w stanie utworzyć tylu wątków pod WOW64, jak mogą, gdy działają natywnie w systemach opartych na procesorach x86, ponieważ WOW64 przydziela dodatkowy stos 64-bitowy (zwykle 512 KB) dla każdego wątku. Ponadto część przestrzeni adresowej jest zarezerwowana dla samego WOW64 i używanych przez niego struktur danych. Zarezerwowana ilość zależy od procesora; więcej jest zarezerwowane na Intel Itanium niż na procesorze x64.

Adam Lawrence
źródło
+0. Jakie są te ograniczenia? Proszę edytować swoje odpowiedzi i wyjaśnienia.
niezapomniany
Czy szukamy zombie? Ta odpowiedź ma prawie sześć lat, wiesz ...
Adam Lawrence
+1. Dzięki za edycję! Próbowałem opublikować nowszy wariant pytania, ale zostało ono zamknięte jako „zbyt szerokie”. O ile mi wiadomo, wszystkie otwarte wersje tego pytania, wszędzie na Super User, mają co najmniej sześć lat.
niezapomniany
1

Nie skracajmy tego tak krótko. 64-bitowe skały. Jeśli możesz go zdobyć, użyj go. Visual Studio, SQL Server (nawet używając tylko Management Studio) korzystają z 64-bitowej wersji. Nie możesz powiedzieć, że nie warto. Nie, nie jest to konieczne, ale powinniśmy starać się poprawić szybkość na notebookach i laptopach programistów i innych użytkowników (nawet nie-techników, którzy używają prostego MS Word). Dlaczego nie skorzystać z promocji i promocji 64-bitowej w swojej firmie? To naprawdę nie jest już tak nowe ... staje się lub było powszechne.

Śmiesznie jest powiedzieć, że nie czerpiesz dużych korzyści z wersji 64-bitowej, podobnie jak śmiesznie jest powiedzieć, że dodanie 4 koncertów, aby ukończyć 8 koncertów na dowolnym laptopie, żaden użytkownik nie jest tego wart. To tylko kolejny przykład chciwych administratorów lub korporacji sieci IT, w których aktualizacja do wersji 64-bitowej jest zazwyczaj bezpłatna w większości przypadków, a następnie dla pamięci RAM jest absurdalnie tania i dwukrotnie zwiększa wydajność użytkownika.

Więc nie, nie jest to konieczne, ale powinno być koniecznością. Nie lubię minimalistów, jeśli chodzi o narzędzia takie jak komputery stacjonarne i laptopy.

Naprawdę nie zgadzam się, gdy ludzie twierdzą, że aplikacje 64-bitowe to coś, z czym nadal musisz być bardzo „ostrożny”… przynajmniej na pewno nie tak bardzo, jak po pierwszym wydaniu.

Jeśli 64-bit byłby takim problemem, większość komputerów stacjonarnych i laptopów nie migrowałaby do 64-bitowej wersji Win 7. Cała nasza firma wypuszcza Win 7 Pro 64-bitowej dla WSZYSTKICH użytkowników (ponad 100,00 pracowników)

WeDoTDD.com
źródło
Przydałoby się wyjaśnienie, co „kołysze” w wersji 64-bitowej. Tutaj wyjaśniono techniczne wyjaśnienie.
glenviewjeff
Czy więc dodanie 4 gigabajtów do maszyny, która nigdy nie zajmowała więcej pamięci niż wcześniej, ma sens? Ok, jeśli wiesz, że możesz go użyć, jeśli jest dostępny, ale w przeciwnym razie jest to po prostu niepotrzebne. Nie ma to nic wspólnego z chciwością, ale po prostu, że możesz inwestować w rzeczy, które mogą mieć większy sens. Modernizacja procesora w prawie każdym przypadku przyniesie korzyści. Nie mówię, że dużo pamięci RAM to zła rzecz (mam 16 GB), ale nie zaktualizowałbym mojego starego laptopa do 8 GB, ponieważ 4 GB naprawdę dobrze trzyma moją instalację Arch! 64bit jest jednak czymś. że tak naprawdę w większości przypadków jest to zaleta, to prawda
larkey
0

Zależy to całkowicie od zastosowania. Większość aplikacji działa dokładnie tak samo w wersji 32-bitowej, jak i 64-bitowej. W przypadku aplikacji, w których ma to znaczenie, prawie na pewno będziesz świadomy, że wersje 32-bitowe są ograniczone i nie będziesz musiał zadawać pytania.

Jednym z obszarów, na które należy uważać, jest sytuacja, gdy aplikacja ma wersję 64-bitową, która ma słabą obsługę innych firm. Mam na myśli program Excel 2010, który jest dostępny w wersji 64-bitowej. Sam program Excel 64 działa doskonale, ale kilka rozszerzeń i dodatków innych firm zostało już przeniesionych. Jako kolejny przykład rozważ Python w systemie Windows. Ponownie wiele ważnych nie-rdzeniowych modułów nie jest dostępnych lub trudnych do uzyskania w postaci 64-bitowej.

Tak więc, chyba że naprawdę rozpaczliwie potrzebujesz 64-bitowej aplikacji, często bezpieczniej jest trzymać wersję 32-bitową.

David Heffernan
źródło