![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
ostatnio czytałem (przeglądałem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) dokumentacje Intela i wyczytałem, że główna róznica pomiędzy 64 a 32 bitowymi procesorami to to, że te pierwsze mają większy zakres dostępu do pamięci (wirtualnej i fizycznej). Słyszałem to też drogą ploteczkową. I teraz stąd moje pytanie: czy jest to naprawdę jedyna różnica? Warto w takim razie kupować takie procesory (dla mnie i tak już za późno...), jeżeli nie mam zamiaru w ciągu najbliższych pięciu lat mieć więcej jak 4GB pamięci (tym bardziej, że Linux potrafi więcej obsługiwać nawet przy 32-bitowych maszynach, nie wiem jak reszta)? Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 800 Pomógł: 0 Dołączył: 26.11.2005 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
http://pl.wikipedia.org/wiki/Problem_roku_2038
Jabol... Czytaj wikipedię! Z resztą zwiększenie z 32 bitów do 64 bitów rozmiar da na pewno większą wydajność, przy mniejszym taktowaniu. |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
http://pl.wikipedia.org/wiki/Problem_roku_2038 Jabol... Czytaj wikipedię! Z resztą zwiększenie z 32 bitów do 64 bitów rozmiar da na pewno większą wydajność, przy mniejszym taktowaniu. WTF ze znakiem? Kogoś chyba bolała głowa... Chyba, że to wymyślili jeszcze przed 1.1.1970 A tak swoją drogą nie widzę powodu aby samo zwiększenie długości słowa miało dać zwiększenie wydajności A wracając do tematu: dzięki za odpowiedzi! dochodzę do wniosku, że wygląda na to, że jednak było warto. Co do większej ilości rozkazów to można również więcej rozkazów na 32-bitowcach zaimplementować, to nie kwestia wielkości słowa, a raczej tego, czy kompilator będzie umiał ich użyć (dlatego winy to shit, bo nie używają zupełnie rozszerzeń optymalizacyjnych specyficznych dla danego modelu procesora! a jedynie tylko standardowych operacji i686! chyba, że znają jakąś strasznie sprytną sztuczkę, żeby to obejść?). W każdym razie skoro te aplikacje są wydajniejsze to świetnie. Jednak nie były to wyrzucone pięniądze. Jedyne co mnie irytuje to to, że muszę działać na systemie w profilu multilib, bo inaczje połowa aplikacji by mi nie działa (na windowsach też by nie działały, nie łudźcie się. jeżeli Wam 32-bitowe aplikacje działają to znaczy, że Wasz win to multilib!). Teraz rozumiem, czemu wszyscy tak swojego czasu jechali win 95 i 98 (pamiętam te czasy, tylko wtedy jeszcze nie wiedziałem o co chodzi). Inna sprawa, że w 64 bitowych maszynach int ma 4 bajty. long ma dla odmiany 8 bajtów oraz pointer. A long long to po prostu long (tutaj na pewno jest przyśpieszenie). Czy to znaczy też szybsze działania zmiennoprzecinkowe? Tutaj małe podsumowanie. Kod sizeof(void *)=8 Mógły ktoś na 32-bitowcu odpalić?sizeof(char)=1 sizeof(short)=2 sizeof(int)=4 sizeof(long)=8 sizeof(long long)=8 sizeof(float)=4 sizeof(double)=8 sizeof(long double)=16 Kod #include<stdio.h>
int main(void) { printf("sizeof(%s)=%d\n", "void *", (int)sizeof(void *)); printf("sizeof(%s)=%d\n", "char", (int)sizeof(char)); printf("sizeof(%s)=%d\n", "short", (int)sizeof(short)); printf("sizeof(%s)=%d\n", "int", (int)sizeof(int)); printf("sizeof(%s)=%d\n", "long", (int)sizeof(long)); printf("sizeof(%s)=%d\n", "long long", (int)sizeof(long long)); printf("sizeof(%s)=%d\n", "float", (int)sizeof(float)); printf("sizeof(%s)=%d\n", "double", (int)sizeof(double)); printf("sizeof(%s)=%d\n", "long double", (int)sizeof(long double)); return 0; } Ten post edytował Jabol 16.06.2007, 22:44:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 06:51 |