Защо 64-битовите приложения работят по-бързо от 32-битовите
Разликата в производителността между 32-битовите и 64-битовите версии на приложенията зависи много от техния тип и типовете данни, които обработват. Но средно може да се очаква увеличение от 2-20% от просто прекомпилиране на програмата, което се обяснява с редица архитектурни промени в 64-битовите процесори [1].
Увеличаването на броя на регистрите с общо предназначение в такива процесори ви позволява да оптимизирате работата с локални променливи във функции, които вече не трябва да се съхраняват в RAM. Няколко аргумента на функцията се предават през регистрите, което също намалява времето за тяхното извикване [2].
Обратната страна на прехода към 64-битовата версия е увеличаването на размера на указателите и някои други типове данни с фактор два, което може да доведе до увеличаване на софтуерните изисквания за системната RAM. В някои случаи може дори да забави скоростта на 64-битово приложение в сравнение с 32-битово. Това обаче е рядка ситуация и по правило се дължи на неуспешен избор на формата на данните, съхранявани в програмата.
Трябва също да се отбележи, че когато се изпълняват 32-битови версии на софтуер на 64-битови системи от семейството на Windows, старите 32-битови приложения ще работят малко по-бавно поради подсистемата WoW64, емулираща 32-битова среда. Средно загубите за програмите поради този слой WoW64 ще бъдат 2-3%, въпреки че в някои случаи тази стойност може да бъде много по-висока.
Библиографски списък
- Андрей Карпов. Оптимизация на 64 битови програми.
- Блог на компанията LLC "CiProVer". Причини, поради които 64-битовите програми изискват повече стекова памет.
- Дискусия на Stackoverflow.com. 64-битовите програми по-големи и по-бързи ли са от 32-битовите версии?
- Базазнания. Какви са предимствата на 64-битовите процесори пред 32-битовите?
Намерете грешки във вашия C, C++, C# и Java код
Предлагаме да опитате да проверите кода на вашия проект с помощта на анализатора на код PVS-Studio. Една грешка, намерена в него, ще ви каже повече за предимствата на методологията за анализ на статичен код, отколкото дузина статии.