Нужна ли дефрагментация оперативной памяти ?

дефрагментация

Нужна ли дефрагментация оперативной памяти или её так называемая оптимизация?

Сразу и честно: мною прочитано огромное количество статей, опробовано множество отдельных утилит и  программ, в состав которых входит такая функция, как дефрагментация оперативной памяти. Само обещание звучит очень логично, некоторые даже тратят средства на покупку таких программ, но давайте разберёмся, так ли эта самая дефрагментация оперативной памяти работает, как заявлено, и какие результаты в итоге?

Итак, дефрагментация оперативной памяти – один из самых ложных инструментов увеличения производительности компьютера. Подобными программами я лично пользовался не раз. И всякий раз было обещано, что будет проведена дефрагментация оперативной памяти , после которой компьютер будет работать быстрее за счёт уменьшения потребления памяти. Теоретически, повторюсь, оба заверения верны, только всякий раз по завершению дефрагментации либо не менялось ничего, либо улучшения были столь незначительны, что в обоих вариантах развязки я тратил время только на процедуру самой дефрагментации, не получая в итоге то самое “ничего”.

 Как работает оперативная память с Windows?

Когда программа, запущенная в системе собирается сохранить некоторые данные в Windows, она делает запрос к системе на наличие свободных адресов в ячейках памяти, существуют ли таковые вообще в нужном объёме. Windows резервирует блок адресов для программы и сообщает ей об этом. Обратите внимание, программа напрямую к установленным планкам оперативной памяти (как и к другому «железу» компьютера) обратиться никогда не сможет, эта задача возлагается на операционную систему. Программа сама решает лишь, какие данные в память компьютера отослать для сохранения, а затем пересылает Windows сами данные, прилагая необходимый диапазон адресов.

Что происходит с оперативной памятью?

Чем больше программ запущено в Windows, тем больше фрагментируется оперативная память. Системе постоянно приходится работать с открывающимися и закрывающимися программами и собственными приложениями, решая задачи компоновки данных, получаемых от разных программ, и распределения этих данных по ячейкам памяти. А фрагментация происходит именно в тот момент, когда блок памяти перемещается, отрываясь от привязанного к какому-нибудь процессу адресного пространства. Максимальный размер свободного блока памяти уменьшается. Но отчасти цель по дефрагментации памяти логична – иногда на фоне достаточного объёма оперативной памяти запрос какой-то программы за ней заканчивается неудачей. Раз за разом. Почему?

Программе (особенно “тяжеловесной”) требуется не просто какой-то определённый размер свободного пространства. Некоторые программы требуют, чтобы адресное пространство было сочленённым. Не просто “много” – т.е. больше, чем в самом запросе, но и “вместе“. Это как нам бы с вами платили зарплату – каждый день понемногу или пару раз целиковыми суммами. Кто бы что выбрал? Программы выбирают второе. И вот тут-то пользователя подстерегает шанс попасть на ошибку типа Memory allocation for * bytes failed или Unable to allocate memory. Чем более дефрагментация, тем более такая вероятность. Если какая-нибудь игра с серьёзным потребляемым объёмом оперативной памяти вылетает на фоне окна с подобным сообщением, это ваш случай. То есть сейчас запросы “маленьких” программ к адресам небольших объёмов проходят незаметно и успешно, но при обращении к большим – Windows “тяжеловесов” обламывает.

Memory allocation for bytes failed

И…?

Звучит угрожающе, однако во всём этом есть маленькая уловка. Сам процесс управления распределением памяти между программами в Windows с достаточным объёмом RAM не занимает практически ничего. Так, на сто активных приложений и программ системе требуется всего около ста килобайт(!) оперативной памяти для перераспределения. Так вот дефрагментация оперативной памяти нашими “твикерами” и будет заключаться именно в сокращении этой величины или объёма памяти, затрачиваемой на такие «переходные» процессы. На 100 кб? Вы заметите? Да никогда. Более того, дефрагментация оперативной памяти лишь срежет эти сто килобайт пополам, что делает ситуацию с такой «оптимизацией» ещё смешнее. Никто, кроме самой Windows, не сможет определить, как лучше распределить имеющуюся память компьютера.

Следующий аргумент производителей утилит по дефрагментации памяти это процесс расположения данных оперативной памяти в непрерывную цепочку, что, несомненно, увеличит скорость доступа к физической памяти. В этом случае дефрагментация оперативной памяти сравнивается разработчиками с процессом дефрагментации жёсткого диска, что на самом деле вообще не имеет ничего общего с ним. Магнитные диски в винчестере представляют собой вращающиеся блюдца, с которых снимается информация с помощью считывающих головок. В этом случае действительно компактное расположение информации файла сильно сказывается на скорости считывания и передачи данных с жёсткого диска, а, следовательно, и на скорости системы в целом.

При же тут оперативная память, которая полностью состоит из статически расположенных полупроводниковых приборов, попеременно открывающихся и закрывающихся? Никаких скоростей, кроме тех, что приближаются к скорости света, там нет. Ни механических движений считывающей головки, ни вращающихся блинов…

Так что же?

Таким образом, мы подходим к главной идее: нет никакого смысла в незанятой процессами памяти. Но даже в том случае, когда память Windows заполняется под завязку и кажется, что следующему приложению “оперативки” уже не хватит, система легко сбросит кэшированные данные неиспользуемого приложения для нужд той задачи, какая сейчас активна на Рабочем столе. Вот и всё. Причём здесь дефрагментация оперативной памяти … 

Ну, к слову сказать, в недалёком прошлом переполнение оперативной памяти действительно служило индикатором торможения системы. Так, владельцы Windows Vista с объёмом установленной памяти в 1 – 1,5 Гбайт замечали, что система начинала подтормаживать при стремлении RAM к максимальному значению. И правда, ведь системе приходилось постоянно перезаписывать данные с/на жёсткий диск, обращаясь к виртуальной её части. В итоге Windows 7 и позднее лишены этой проблемы. 

Как работает дефрагментация оперативной памяти ?

Обычно дефрагментация оперативной памяти основана на двух принципах:

  • использование функции очистки рабочего набора страниц (на которые разбивается память). Она же EmptyWorkingSet function. Смысл её состоит в том, что она удаляет как можно больше страниц из множества страниц памяти, доступных процессу. Подробнее в статье про EmptyWorkingSet function. Только английский выучите…
  • или просто моментально перераспределить большущий кусок оперативной памяти, заставляя переписать кэшируемую память из RAM в знаменитый файл подкачки page file.

Оба трюка освобождают оперативную память. Но что происходит на самом деле: теперь уже запущенным программам приходится черпать память не из RAM, а с виртуальной части. То есть с HDD или SSD. Хорошо, если у вас твердотел. А если относительно устаревший спинер HDD? В итоге ситуация патовая: память для нового приложения освобождена, а остальные службы и программы тормозят. И в чём тогда смысл?

При всех полезных функциях дефрагментация оперативной памяти в любом случае на современном компьютере с более чем 1 Гб установленной оперативной памяти и при работающих программах, используемых 99,99999 процентами пользователей, абсолютно бессмысленна. Советую вам поискать другие утилиты по оптимизации работы вашей системы в другом русле.

Хотите оптимизировать память вручную? Просто закрывайте программы, которые не нужны. К чему перегружать компьютер с небольшим объёмом физической памяти? Самый действенный способ описан в статье Самостоятельный апгрейд компьютера. Как добавить оперативную память. И не стоит верить в чудеса.

Успехов.

Один ответ на “Нужна ли дефрагментация оперативной памяти ?”

  1. Ммм, да вопрос: у меня SSD 500GB, опреративка 4GB… CPU средний целерон, но с тактовой боле 2GH… Так кто по вашему бежит впереди паровоза, и обкексывает в целом систему… Смысла в дефрагментации ОП нет. Решает скорость обращения к кокретной ячейки памяти. Важна и разрядность (у меня 64bit), но чё толку: то ли Кеш закакивается… Вообщем чешу репу… Так как думаете, есть смысл переходить с 10-ки на Window 11… Я сейчас на W11, но с моим железом… Работает как 10-ка, и лучше, все программы идут. Упор в засранность КЭША… А как чё… Чешу репу…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Максимальный размер загружаемого файла: 50 МБ. Вы можете загрузить: изображение, видео. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Перетащите файлы сюда