Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Оптимизатор оперативной памяти


Автор: RamIreZz 9.3.2008, 16:13
Привет всем!
Меня интересует вопрос, вот какого плана.
Кто знает, подскажите каким образом можно оптимизировать оперативку. Просканить память, найти занятую, но не используемую память и очистить её. Если есть мнение, ошмётки кода(Delphi) или ссылка на подобный материал. Буду премного благодарен. Плиз...

Автор: THandle 9.3.2008, 19:59
Это имелось в виду?

http://www.delphilab.ru/content/view/215/63/

Автор: RamIreZz 9.3.2008, 20:36
Цитата(THandle @ 9.3.2008,  19:59)
Это имелось в виду?

Не совсем, данный пример насколько я понял освобождает память моего приложения, мне бы хотелось сделать тоже самое со всеми запущенными процессами...
Но всё равно спасибо большое...

У кого-нибудь еще что-нить есть? Очень надо!!!  smile 

Автор: ASGDeveloper 12.3.2008, 01:26
Цитата(RamIreZz @  9.3.2008,  20:36 Найти цитируемый пост)
Не совсем, данный пример насколько я понял освобождает память моего приложения, мне бы хотелось сделать тоже самое со всеми запущенными процессами...

Перебирай в цикле все запущенные процессы (фильтруя системные) и вызывай для них код из той статьи.

Автор: RamIreZz 12.3.2008, 15:13
Спасибо, разобрался smile  Теперь, никто не знает как выгружать не используемые *.dll уже закрытых приложений из памяти, и избавляться от всякого мусора. Заранее спасибо...

Автор: Rennigth 17.3.2008, 16:29
Цитата(RamIreZz @  12.3.2008,  15:13 Найти цитируемый пост)
Теперь, никто не знает как выгружать не используемые *.dll уже закрытых приложений из памяти

Процесс всегда выгрузит спроэцурованную в его АП dll. Просто эта dll может быть спроэцирована в АП других процессов.

Автор: RamIreZz 19.3.2008, 09:13
Цитата(Rennigth @ 17.3.2008,  16:29)
Процесс всегда выгрузит спроэцурованную в его АП dll. Просто эта dll может быть спроэцирована в АП других процессов.

Т.е. Ты хочешь зказать, что приведенный выше пример также выгружает и подвисшие в памяти *dll'ки?

Автор: Rennigth 19.3.2008, 11:32
Цитата(RamIreZz @  19.3.2008,  09:13 Найти цитируемый пост)
подвисшие в памяти *dll'ки

хм, чтобы это значило... 

Вкратце, при завершении процесса система закроет все хендлы открытых объектов, и если надо уничтожит созданые и полностью освободит выделеную процессу память, а загруженая(спроецированая) dll является частью АП процесса.

P.S. почитай http://wm-help.net/books-online/book/59464.html, многое проясниться.

Автор: RamIreZz 29.3.2008, 13:01
Цитата(Rennigth @ 19.3.2008,  11:32)
хм, чтобы это значило...

Бывает так, что приложение закрываеться, а загруженные им в память библиотеки остаються там по каким-то причинам и захламляют память системы. Вот мне и интересно просканировать память и найти этих "Запрятавшихся подлецов".

Автор: W4FhLF 30.3.2008, 06:50
Цитата(RamIreZz @  29.3.2008,  13:01 Найти цитируемый пост)
Бывает так, что приложение закрываеться, а загруженные им в память библиотеки остаються там


Как ты это определил?

Автор: MadCoder 1.4.2008, 22:06
Цитата(W4FhLF @ 30.3.2008,  06:50)
Цитата(RamIreZz @  29.3.2008,  13:01 Найти цитируемый пост)
Бывает так, что приложение закрываеться, а загруженные им в память библиотеки остаються там


Как ты это определил?

Я думаю, Рамирез имеет в виду, что существует множество программ, которые занимаются т.н. оптимизацией и дефрагментацией оперативной памяти, выгрузкой ненужных библиотек и т.д.
Например, при первом запуске Fotoshop и Office у Вас будет грузится в пять раз дольше, чем при втором. Т.е. какие-то библиотеки или кэш остается во временной памяти.

Интересует принцип работы таких программ.

Мне тоже интересна эта тема, с удовольствием поучавствую в обсуждении smile .

Автор: RamIreZz 2.4.2008, 09:05
Я находил пример какой-то проги, теперь только осталось разобраться в её "кодовом" функционале. Может кому-то тоже интересно???

Автор: MadCoder 2.4.2008, 12:50
Цитата(RamIreZz @ 2.4.2008,  09:05)
Я находил пример какой-то проги, теперь только осталось разобраться в её "кодовом" функционале. Может кому-то тоже интересно???

Судя по всему используемый компонент jsMaxMem не работает в Windows XP.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)