x86_64, wrażenia

Michał ‘mina86’ Nazarewicz | 18 lipca 2008

64-bitowe procesory x86_64, x64, amd64, intel64, czy jak je tam chcemy zwać, zdobywają coraz większą popularność. Jest również coraz więcej systemów operacyjnych wykorzystujących ich potencjalne możliwości. Nareszcie pozbyliśmy się problemu przekręcenie licznika w 2038! Nareszcie możemy zaadresować 1 TiB fizycznej pamięci (to, że nasza płyta główna obsługuje 3 GiB, a jak mamy szczęście 3,5 GiB to już szczegół). Nareszcie mamy 48-bitową (tj. 256 TiB) logiczną przestrzeń adresową! Do tego dochodzi lepsza obsługa instrukcji SIMD, więcej rejestrów, 64-bitowa arytmetyka itp.

Rzecz jasna nie ma nic za darmo. Za te udogodnienia musimy płacić i bynajmniej nie chodzi mi o pieniądze, bo to raczej najmniej istotne — istotniejszą kwestią jest większe zużycie pamięci z powodu użycia ośmiobajtowych wskaźników, czy wyrównania stosu do ośmiu bajtów nawet jeżeli zrzucamy na niego liczbę 32-bitową. Do tego dochodzi jeszcze bardziej skomplikowany, a przez to wolniejszy, proces tłumaczenia adresów logicznych na adresy fizyczne.

Jaki jest rezultat? Z zainstalowanym Slackwarem na moim komputerze z 512 MiB pamięci mogłem mieć uruchomione dziesiątki programów w tym Gimpa z otworzonym jakimś niemałym obrazkiem, a system i tak radził sobie bez swapu. Gdy zainstalowałem Slamd64 OOM killer co i rusz zabijał mi jakiś proces. Po kilku dniach zdecydowałem się wrócić do poprzedniego stanu rzeczy.

Jaki z tego morał? Jeżeli jesteś zwykłym użytkownikiem nie baw się w 64-bitowe systemy o ile nie masz dużo RAM-u, bo nie będziesz miał z tego większych korzyści, a co więcej możesz zauważyć negatywne skutki. Zresztą nawet jeżeli masz dużo pamięci przechodzenie może okazać się zbytnim zachodem jeżeli korzystasz już z systemu 32-bitowego. Do roku 2038 mamy jeszcze 30 lat, pamięć do 64 GiB można obsłuży dzięki PAE, 48-bitowej przestrzeni adresowej nie potrzebuje żaden z programów, które używasz, z SSE3 gcc pewnie i tak nie umie skorzystać, 64-bitowa arytmetyka jest wykorzystywana przez zaledwie kilka programów, które i tak nie są krytyczne dla szybkości systemu (zob. prawo Amdahla), a korzyści wynikające z większej liczby rejestrów mogą zniknąć w cieniu większego zużycia pamięci.

Nie twierdzę, że 64-bitowy procesor jest złym wyborem, ale w wielu sytuacjach (mówię głównie o zastosowaniach „domowych”) nie ma co liczyć, że jak za sprawą dotknięcia czarodziejską różdżką nasz komputer zacznie działać szybciej, gdy przejdziemy na 64-bitowy system, w sytuacji, gdy mamy stosunkowo mało RAM-u.