Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация памяти, Как очистить оперативку, файл подкачки 
:(
    Опции темы
MadCoder
Дата 18.11.2007, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 24.8.2007
Где: Москва

Репутация: 1
Всего: 2



Приветствую!

Видел много программ для очистки оперативки от мусора. Интересует, как это выполнено на уровне кода. Также интересно, как очистить файл подкачки.
PM WWW ICQ   Вверх
ASGDeveloper
Дата 21.11.2007, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(MadCoder @  18.11.2007,  00:01 Найти цитируемый пост)
Видел много программ для очистки оперативки от мусора.

Вроде сначала они выделают большой кусок памяти, а потом сразу его освобождают. В результате те проги, которые сейчас неактивны - скидываются в своп и память освобождается для нашего "чистильщика". А потом "чистильщик" освобождает память и эта память остается свободной.
PM MAIL   Вверх
EvilsInterrupt
Дата 22.11.2007, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 1
Всего: 9



ASGDeveloper, неее, чето чушь ты сказал ;) Можно распределить память с таким атрибутом, чтобы не свопилось и делает любая программа, по одной простой причине, что в каждый процесс грузятся kernel32.dll и еще более серьезные библиотеки и я не знаю, но предполагаю, что там есть код который заказывает странички памяти, которые нельзя свопить.

Вот к примеру одна из интересных констант:
Цитата

PAGE_NOCACHE
0x200

Does not allow caching of the committed regions of pages in the CPU cache. The hardware attributes for the physical memory should be specified as "no cache." This is not recommended for general usage. It is useful for device drivers, for example, mapping a video frame buffer with no caching. 
This value cannot be used with PAGE_NOACCESS.

This flag is not supported by CreateFileMapping.

PM MAIL WWW ICQ Jabber   Вверх
ASGDeveloper
Дата 23.11.2007, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(EvilsInterrupt @  22.11.2007,  21:55 Найти цитируемый пост)
в каждый процесс грузятся kernel32.dll

Не грузится она в процесс. Сам Билли гарантирует что за весь сеанс работы винды будет загружена только одна копия dll-ки.
PM MAIL   Вверх
dumb
Дата 23.11.2007, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Цитата(EvilsInterrupt @  22.11.2007,  21:55 Найти цитируемый пост)
неее, чето чушь ты сказал
извини, но чушь(если уж ты сам употребил это слово) пронес ты. весь пост из разряда "слышал звон, да не знаю где он". ASGDeveloper совершенно верно описал общую схему работы этих программ. оно не обязательно происходит именно через "выделение большого куска", но суть остается той же - всем работающим программам делается "харакири" - усекновение рабочего набора.

Цитата(ASGDeveloper @  23.11.2007,  02:22 Найти цитируемый пост)
Сам Билли гарантирует что за весь сеанс работы винды будет загружена только одна копия dll-ки. 
ну... это, так скажем, "маркетинговая" гарантия.
PM MAIL   Вверх
EvilsInterrupt
Дата 23.11.2007, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 1
Всего: 9



ЗЫ:
Перечитал заново, че написал и понял, нельзя посты после большого количества пива писать ))) ASGDeveloper сорри за грубость ;)

dumb, Видимо я хотел сказать, что можно выделить память так, чтобы ее невозможно было выгрузить в своп ! Да, такое возможно, а это говорит о том, что полной очистки не возможно.

Цитата

Не грузится она в процесс.

Не совсем корректно выразился. В 9x да, каждому процессу назначается либо уже имеющаяся копия dll или же грузится новая. В NT все по другому, каждому процессу своя копия любой dll, если два процесса А и Б используют kernel32.dll, то у каждого в виртуальном адресном пространстве есть своя спроецированная копия kernel32.dll. Теперь посмотрим на то что же такое проецирование? Читая совместный труд Марка Руссиновича и Девида Соломона можно грубо сказать, что копирования из файла данных происходит только тогда, когда они действительно нужны в данный момент времени.

Тогда что выгружать в своп?

(Дальше идут предположения, то как это на самом деле надо уточнять)

А в в своп думаю стоит выгружать только текущее состояние дел,т.е. значения разнообразных хэндлов, HDC, etc. Думаю оно так и происходит, но тогда смысл в очистке то какой? Кинуть в своп, если потом это же самое и загрузится в память? Можно конечно положить, что фрагментации меньше будет, но что-то сомнительно

Это сообщение отредактировал(а) EvilsInterrupt - 23.11.2007, 08:59
PM MAIL WWW ICQ Jabber   Вверх
MetalFan
Дата 23.11.2007, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(ASGDeveloper @  23.11.2007,  02:22 Найти цитируемый пост)
Не грузится она в процесс.

да, не грузится, а отображается:
Цитата(MSDN)
LoadLibrary

Maps the specified executable module into the address space of the calling process.




--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.