Odpowiedź
Jedyną prawdziwą różnicą, jaką zauważysz podczas korzystania z HLL, będzie rozmiar kodu, i odkrycie, że niektóre funkcje / biblioteki nie są jeszcze dostępne dla x64. Aha, i kod x64 wydaje się być mniej wydajny, przynajmniej w .NET. Aplikacja, nad którą pracuję, działa około 20% szybciej, kiedy kompiluję na x86. Nie wiem, czy to dlatego, że używam większej przepustowości magistrali, przesuwając 8-bajtowe ilości, czy też jest jakiś „fragment” aby dostosować 32-bitowe interfejsy API do 64-bitowych.
Komentarze
Odpowiedź
Na tym poziomie, o którym mówisz (.NET), różnica jest bardzo mała. Jeśli używasz całkowicie zarządzanego kodu, JIT automatycznie skompiluje Twój kod i będzie działał prawie tak samo, z różnymi charakterystykami wydajności. W przypadku niektórych rzeczy będzie to szybsze (przetwarzanie dużej ilości danych, dane mogą być przetwarzane w fragmentach 64-bitowych, więcej dostępnych rejestrów itp.), A dla innych wolniej (dane 64-bitowe (tj. Wskaźniki) ładują się wolniej do pamięci podręcznej na początek , co oznacza więcej danych i wolniejsze transfery z pamięci głównej).
Tak naprawdę musisz się martwić tylko o różnicę, gdy używasz niezarządzanego kodu. Ten blog zawiera dobry przegląd problemów.
Komentarze
Odpowiedź
Programy .Net, które zostaną napisane dla systemów 64-bitowych, będą miały większa przestrzeń adresowa, a więc będzie znacznie szybsza niż programy oparte na architekturze x86-32 bit. Również najnowsze kompilatory języka .NET tworzą znacznie zoptymalizowany kod. JIT został również ulepszony w ostatnich latach i teraz możesz wykonać optymalizację wielordzeniową JIT. Ulepszono również debuggery. W międzyczasie tworzony jest lepszy i zoptymalizowany kod dla systemów 64-bitowych.
Komentarze