Я был обрызгиванием в Дельфи прочь и на в течение многих лет, и я всегда задавался вопросом, почему делает уменьшение, и восстановление приложения заставляют это использовать меньше памяти?
Как пример я использую Дельфи 7, и я создаю новый проект ни с чем на нем кроме незаполненного бланка, с которым начинаются все проекты, и затем я нажимаю F9, чтобы запустить приложение и затем посмотреть на использование памяти для приложения, и он находится на уровне приблизительно 3.5 МБ, я затем минимизирую приложение, и использование памяти снижается приблизительно до 760 КБ, и затем я наконец восстанавливаю приложение, и использование памяти возвращается приблизительно до 1.5 МБ, который является примерно 1/2 того, чем это было, когда он сначала загрузился, и это всегда смущало меня относительно того, что делает, это произойти и даже главный должно там так или иначе запустить приложение с некоторой директивой, которая заставляет его использовать 1.5 МБ памяти вместо 3.5 МБ, которые он обычно использует.
С наилучшими пожеланиями, Dave
вероятно что-то с управлением памятью Windows. попробуйте то же самое с калькулятором Windows, и поведение будет таким же :))
вот ответ: http://support.microsoft.com/?kbid=293215 и у некоторых возникает тот же вопрос: http://digital.ni.com/public.nsf/allkb/9EA3D4258E037B8A8625763300434D4D
С уважением,
Здесь вы можете найти очень четкое объяснение от Яна Мартинса. Когда приложение сворачивает системный вызов SetProcessWorkingSetSize процедуры для освобождения неактивной памяти процесса.
Вы можете сделать то же самое, добавив этот код в свое приложение. В кнопке OnClick вы можете сделать это:
procedure LiberarMemoria;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF);
end;
Эффект аналогичен сворачиванию приложения. Если ваше приложение выполняет какую-то задачу, которая в конечном итоге использует большой блок памяти, вы можете принудительно освободить его после использования, используя этот небольшой код.
С уважением