Пишу несложную прогу на C#.NET Fm 2.0 и конечно она "жрет" память - про это знают все, все знают известный прием:
[ DllImport( "kernel32.dll" ) ]
public static extern bool SetProcessWorkingSetSize ( IntPtr handle, int minimumWorkingSetSize, int maximumWorkingSetSize );
.......
SetProcessWorkingSetSize( System.Diagnostics.Process.GetCurrentProcess().Handle,-1, -1 );
|
НО, терзают меня смутные сомнения, что есть еще более радикальные методы, объясню на примере:
Берем мою прогу.
1. Запускаем, форма открывается, памяти ~17М (если воспользоваться приведенным выше куском кода тогда имеем 8М)
2. Жмем Минимайз, памяти ~840К(тут ничего не меняется)
3. Максимайз, памяти ~5М (~3,2М)
4. Дальше жмем Минимайз/Максимайз - память так и колеблется как в п.п.2-3.
5. Если вызываем новые формы Память раздувается на 1М, 2М, 3М, 5М и т.д., но после выполнения п.п.2.3. все становится как в тех таки п.п.2.3.
Берем "серьезную" прогу тоже на .NET Fm 2.0
Notebook Hardware ControlИ что мы видим?
п.1 нету, есть только п.п.2.3, с поправкой на объем памяти, который условно пропорционален тому насколько их прога должна быть толще моей.
Где собака порылась?
Или может я по неопытности глупости говорю?
З.Ы. Пробовал делать программно Минимайз-Максимайз - эффекта нету, запускать не раскрывая формы (в фоне) - тоже эффекта нет, только если ручками...