-
Почему OpenSaveDialog(из KOl или из VCL) добавляет к программе 4 мб(5 в XP) к опер. памяти(ОП)?
Сначала программа весит в ОП, допустим, 1.3 мб, но стоит открыть диалог и всё => +4-5 мб к ОП добавляет. При закрытии выгружает только метр(т.б. если при диалоге прога весила 5 мб, то после закрытия 4 мб). Пробовал Dialog.Free => результат нулевой.
P.S. Хотя бы при закрытии далога выгружала тех 4 или 5 несчастных метров.
-
А если SetprocessWorkingSetSize(GetCurrentProcess,Cardinal(-1),Cardinal(-1));
-
Супер! Спасибо.
-
Посл. вопрос: Это влияет на производительность приложения?
-
И мне интересно. По идее, когда делаешь SetprocessWorkingSetSize, менеджер памяти скидывает память, выделенную программе, на винт. Т.е. это всё потом предстоит прочитать с винта. Я пробовал на приложении всл. Когда оно запускалось, занимало в памяти около2,8 мб. После SetprocessWorkingSetSize штатный диспетчер задач показал 500 с чем-то кило, потом, в течение 10-20 секунд значение выросло до 1,2 мб. Так что же занимало остальные 1,6 мб? Кто знает?
-
Хм?! Я так и не понял, что-же всё-таки делает эта функция: Очищает память или тупо скидывает, то что в памяти программы на диск(т.б. винт)?
-
> тупо скидывает
Из справки я так и понял
-
>Так что же занимало остальные 1,6 мб? Кто знает? при запуске проги закэшился весь (или почти весь) ее EXE-образ, а когда ты вызвал функцию, обратно в память прочитались только те страницы, которые использовались в момент работы программы.
|