Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Программы Обзоры программ Система Оптимизаторы памяти для Windows NT/2000/XP: мысли вслух RSS

Оптимизаторы памяти для Windows NT/2000/XP: мысли вслух

Текущий рейтинг: 3.73 (проголосовало 49)
 Посетителей: 10047 | Просмотров: 11484 (сегодня 0)  Шрифт: - +
Компьютеры в современной жизни заняли своё твёрдое место, и уже трудно вспомнить, как без них обходились лет десять назад. Но компьютер без программного обеспечения - это только груда железа, из которого можно извлечь немного драгоценных металлов.

Я уверен, что программный рынок гораздо больше рынка компьютерного железа. Наряду с действительно полезными программами, пользователям предлагают и абсолютные пустышки. Но, разумеется, денег за них просят. Можно понять, если какой-нибудь молодой да ранний набрался поверхностных знаний из популярных книжек и начал выдавать программы "на гора". Может быть, со временем наберётся мастерства...

Но довольно часто для того, чтоб пользователи отдавали за пустышки деньги добровольно и с "чувством глубокого удовлетворения", запускается и раскручивается какой-нибудь миф. Самым большим таким надувательством в компьютерных технологиях, конечно же, была "проблема" 2000 года. Но и более мелкие "утки" продолжают летать и приносить деньги.

Первое, что из таких пернатых мне приходит на ум, это программы, "увеличивающие скорость передачи данных через аналоговые модемы на 300%". Даже комментировать не хочется...

Вот и программы, оптимизирующие память компьютера - из той же стаи. И просят за них от 10$ и до бесконечности (в зависимости от жадности и технических знаний). Не вдаваясь в подробности, на процессорах х86 под управлением Windows, программа, более точно - процесс, работает с виртуальной памятью, которую ему отводит операционная система. Фрагменты виртуальной памяти могут находиться в физической памяти компьютера (RAM), занимать часть файла подкачки (swap, он же paging file) и располагаться в кэш-памяти (cache).

Виртуальная память процесса, хотя и имеет непрерывную адресацию, разбивается на Страницы (page). Обычно, на 32-битных процессорах х86, размер Страницы равен 4096 байт. Размер 4096 байт определён архитектурой железа. В специальных случаях размер может быть и 4 Мбайта.

В качестве аналогии доступа к физической памяти: RAM можно представить, как ленту (а ещё лучше - логарифмическую линейку :), а страницу - как окно (визир), которое перемещается по ленте.

Прочитать или записать можно только в то место, над которым располагается окно и только страницу целиком. Управлением страницами виртуальной памяти занимается Менеджер памяти (Windows Memory Manager). Он входит в ядро операционной системы.


Менеджер памяти ведёт несколько списков состояния Страниц, которые используют процессы и операционная система. Это список Рабочих Страниц (Working Set) - тех, которые используются операционной системой, драйверами, процессами и программами. Если процесс пытается обратиться к странице, которой нет в списке Рабочих Страниц процесса, то генерируется ошибка на уровне железа (Page Fault) и Менеджер памяти может отвести ему новую страницу.

Если процесс освобождает Страницу, то Менеджер памяти убирает её из списка Рабочих Страниц и, если она была изменена, то помещает её в список Модифицированных Страниц (Modified Page List) для дальнейшей обработки, а после неё - в "Отстойник" (Standby List). В противном случае, Страница сразу отправляется в "Отстойник". Список Модифицированных Страниц и "Отстойник" могут выполнять функции кэша для процесса, но это отдаётся на усмотрение Менеджера памяти.

Менеджер памяти ведёт ещё два списка - Список Свободных Страниц (Free List) и список Пустых Страниц (Zeroed Page List). В список Свободных Страниц помещаются Страницы, которые освободились после окончания процесса. В список Пустых Страниц помещаются Страницы, которые заполнила нулями специальная подпрограмма Менеджера памяти (Zero Page Thread).

Теперь стоит обратить внимание на числа, которые показывает Task Manager.


Available - свободное место RAM. Это сумма объёмов "Отстойника", Пустых Страниц и Свободных Страниц. System Cache - RAM, занятая системным кэшем. Это сумма "Отстойника" и Рабочих Страниц операционной системы (System working set), которые управляются специальным кэш-менеджером (Cache Manager), входящим в ядро операционной системы.

Все оптимизаторы RAM построены на одном принципе. Заставить Менеджер памяти отдать оптимизатору как можно больше памяти. Если оптимизатор - очень настырный, то ему удастся заполучить и Страницы из "Отстойников" процессов и Рабочие Страницы операционной системы. После чего оптимизатор торжественно рапортует о проделанной работе и закрывается, освобождая всё захваченное место в памяти.

После чего в лучшем случае производительность не изменяется, а в худшем - упадёт. Как только Менеджер памяти дойдет до некоего предела в выделении памяти оптимизатору, он начинает сбрасывать Страницы в файл подкачки на диске. А некоторые из этих Страниц надо будет потом вернуть с диска в память, если в них кэшировались данные или программный код. Особенно это актуально для серверных приложений. И всё равно Менеджер памяти всё перекроит по-своему.

Программы, которые сидят в системном трее, управляются Менеджером памяти как фоновые процессы, т.е. с минимизацией используемой памяти.

Особенно меня порадовали оптимизаторы, которые грозятся произвести дефрагментацию виртуальной памяти. Оптимизатор никогда не знает, в каком физическом устройстве располагается тот или иной адрес его собственной памяти. И кто ж ему позволит залезть в память другой программы и там что-то передвигать...

В общем, оптимизаторы RAM - сплошная маниловщина...

P.S. Окончательным толчком к появлению этого материала послужила статья одного из самых сведущих в операционных системах Windows людей в мире Марка Руссиновича (Mark Russinovich) "The Memory-Optimization Hoax. RAM optimizers make false promises", опубликованной в январском номере "Windows & .NET Magazine", January 2004.

И я не могу не согласиться с ним в том, что как бы не относились к Microsoft, но если бы эти оптимизаторы работали как надо, их алгоритмы уже давно бы включили в ядра операционных систем Windows...

Внимание: ссылки работоспособны на момент публикации материала. Сайт www.fcenter.ru не несёт ответственности за изменения на сторонних серверах.

Иcточник: Fcenter.ru  •  Опубликована: 01.02.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.