﻿# WoW64

**WoW64** \(Windows\-on\-Windows 64\-bit\) \- подсистема операционной системы Windows, позволяющая запускать 32\-битные приложения на всех 64\-битных версиях Windows\. Запуск старых 16\-битных приложений в 64\-битных Windows системах невозможен\.

Подсистема Wow64 эмулирует 32\-битное окружение, за счет дополнительной прослойки между 32\-битным приложением и 64\-битным Windows API\. Где\-то это прослойка тонкая, где\-то не очень\. Для средней программы потери в производительности из\-за наличия такой прослойки составят около 2%\. Для некоторых программ это значение может быть больше\. Два процента это не много, но следует учитывать, что 32\-битные приложения работают немного медленнее под управлением 64\-битной операционной системы Windows, чем под 32\-битной\.

Компиляция 64\-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности\. Это связано с архитектурными изменениями в микропроцессоре, такими как увеличение количества регистров общего назначения\. Для средней программы прирост производительности, от простой перекомпиляции программы можно ожидать в пределах 5\-15%\.

Дополнительный прирост производительности можно получить, используя 64\-битные типы данных\. В этом может помочь статический анализатор кода [Viva64](https://pvs-studio.ru/ru/pvs-studio/)\. Хотя основное его назначение заключается в поиске ошибок в 64\-битном коде, следуя его рекомендациям, вы можете также увеличить скорость работы программы\.

## Библиографический список

1. Wikipedia\. [WOW64](https://en.wikipedia.org/wiki/WoW64)
1. [Блог Алексея Пахунова, являющегося сотрудником Microsoft и участвующего в разработке подсистемы WoW64](https://blog.not-a-kernel-guy.com/)
1. [Оптимизация 64\-битных программ](https://pvs-studio.ru/ru/blog/posts/cpp/a0030/)
1. [Разработка ресурсоемких приложений в среде Visual C\+\+](https://pvs-studio.ru/ru/blog/posts/a0018/)
1. 64\-битные уроки\. Урок 2\. [Поддержка 32\-битных приложений в 64\-битной среде Windows](https://pvs-studio.ru/ru/blog/lessons/0002/)\.