Мы обнаружили, что для приложения с графическим интерфейсом, написанного на Delphi для Win32 / Win64 или написанного аналогичным образом, использующего большие и тяжелые библиотеки поверх Win32 API (GDI и т. Д.), Стоит вызвать SetProcessWorkingSetSize один раз,
Мы вызываем его с параметрами (... -1, -1) в течение доли секунды после того, как приложение полностью открылось и показало пользователю главное окно.В этом случае SetProcessWorkingSetSize (... -1, -1) освобождает большое количество кода запуска, который больше не нужен.Память быстро восстанавливается примерно до 1/3 того, что было бы без SetProcessWorkingSetSize (... -1, -1), и с тех пор не увеличивается (если приложение не выделяет больше памяти).Таким образом, мы эффективно сохранили 2/3 памяти в основном кода запуска (загрузка и анализ файлов конфигурации, инициализация графического интерфейса и т. Д.), Которые не понадобятся для продолжения работы приложения.
Если у вас есть графический интерфейсприложение, вы можете протестировать свое собственное приложение таким же образом - просто вызовите SetProcessWorkingSetSize один раз и посмотрите, сколько памяти определенно было освобождено.
Даже для серверного (сервисного) приложения, которое не имеет GUI - я думаю,что вызов SetProcessWorkingSetSize один раз после полной загрузки и инициализации сервера может быть полезным.