Home News

CleanMem — оптимизируем использование оперативной памяти

02.09.2018

Недавно один мой товарищ рассказал мне о программе iFreeMem, которая оптимизирует использование оперативной памяти компьютером, за счет очистки зарезервированного, но неиспользуемого в данный момент, места программами. Эффект, который можно получить, используя эту программу, приблизительно такой же, как от перезагрузки компьютера. Единственный минус этой программы заключается в том, что она работает только под Mac OS и не поддерживает мультиплатформенность. Для ОС Windows такая программа иногда бывает незаменимой, особенно если в компьютере установлено мало оперативной памяти.

У меня получилось найти несколько аналогов под Windows, но самой интересной программой из них оказалась CleanMem, именно ей посвящается эта статья.

Как работает CleanMem?

Когда Windows начинает не хватать ресурсов оперативной памяти, система переносит содержимое памяти в файл подкачки (pagefile.sys) на жестком диске. Скорость обмена информацией с жестким диском является самым слабым местом в производительности системы, так как чем медленнее скорость вращения шпинделя жесткого диска, тем медленнее скорость работы системы с файлом подкачки. Когда вы используете CleanMem, программа предотвращает использование всего объема памяти системой, соответственно Windows не использует файл подкачки и таким образом мы избегаем сильного замедления работы.

Основные плюсы программы

— Программа маленького размера (2,66МБ), с наличием портативной версии (1,18МБ);

— Отсутствие рекламы и стороннего ПО, несмотря на то, что программа бесплатная;

— Наличие удобных функций и простота в использовании – программа предназначена для домашнего пользования;

— Возможность ведения логов, которые хорошо помогают изучить статистику по использованию оперативной памяти системой «до» и «после» использования программы;

— Быстрая и простая установка без необходимости обязательной предварительной или последующей настройки программы. Сразу после установки, программа не будет попадаться вам на глаза, она будет тихонько работать в фоновом режиме. Также существует возможность реал-тайм отслеживания нагрузки на оперативную память и быстрого доступа к функциям программы при использовании монитора (в виде виджета на рабочий стол и/или трей-иконки), встроенного в программу;

— Поддержка всех версий Windows как 32-бит так и 64-бит;

— Больше всего CleanMem понравилась мне тем, что она не лезет самостоятельно в память и ничего там не удаляет. Вместо этого она обращается к Windows каждые 30 минут при помощи родного планировщика задач ОС, что никак не влияет на безопасность и стабильность работы системы.

Что важно понимать относительно работы CleanMem?

1. CleanMem не улучшит магическим способом ваше железо и не заставит работать вашу систему. Если у вас мало оперативной памяти, вам все равно придется рано или поздно докупать новые планки. Основная цель программы – помочь Windows минимально использовать файл подкачки на жестком диске;

2. Используя программу вы не добьетесь колоссального увеличения производительности. Однако больше всех эффект от работы программы заметят пользователи, у которых не очень много оперативной памяти – вам CleanMem значительно будет облегчать жизнь, пока у вас не появиться возможность увеличить объем памяти (чем больше оперативной памяти – тем лучше!);

3. CleanMem будет особенно эффективен при работе с программами, которые приводят к утечки памяти. При утечке содержимое памяти перемещается в системный кэш, а не в файл подкачки. Системный кэш находится в оперативной памяти, поэтому программа может обратиться за необходимой информацией незамедлительно. Если при этом запущен CleanMem, даже в мощных 3D играх не будет «подлагов». Это происходит благодаря тому, что память, которая не была использована процессами освобождается и через некоторое время снова доступна для резервации программой.

Wikipedia

Уте́чка па́мяти (англ. memory leak) — процесс неконтролируемого уменьшения объёма свободной оперативной памяти (RAM) компьютера, связанный с ошибками в работающих программах, вовремя не освобождающих ненужные уже участки памяти, или с ошибками системных служб контроля памяти.

Подробности работы программы

Итак, как мы уже знаем, после установки программы, она автоматически добавляет в планировщик задач Windows правило, которое запускает программу как службу в фоновом режиме каждые 30 минут. При запуске службы программа запрашивает у Windows список текущих процессов в системе. Далее она берет ID каждого процесса и вызывает службу Windows API EmptyWorkingSet для каждого процесса, при этом CleanMem проверяет игнор-лист системы и пропускает процессы, которые указаны в нем. После этого программа дает указание Windows, что бы та самостоятельно очистила процессы в созданном списке. Как только процедура будет завершена, программа самостоятельно завершается и запуститься по расписанию снова через следующие полчаса без участия и внимания пользователя.

Wikipedia

Windows API (англ. application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает комплект разработчика программного обеспечения, который называется Platform SDK, и содержит документацию, набор библиотек, утилит и других инструментальных средств для разработки.

Основное преимущество программы заключается в том, что она не выгружает содержимое оперативной памяти на жесткий диск и не очищает ее от самих процессов – Windows включает их в игнор-лист. Благодаря этому процессы не «отваливаются», а их производительность не ухудшается. CleanMem дает команду Windows API на очистку только той части памяти, которая больше не используется ни одним процессом в системе.

Небольшое примечание касательно вызова API — Microsoft использует для команды empty.exe в Windows 2003 Resource kit, также это API используется по умолчанию всеми .Net приложениями для уменьшения потребления оперативной памяти при сворачивании окон в панель задач.

Empty.exe: EmptyWorkingSet Tool

EmptyWorkingSet (Empty) — это инструмент командной строки, который очищает набор определенных задач или процессов, делая страничные блоки доступнвми для других процессов.

Принцип работы процесса очистки можно легко понять на примере небольшой строчки, которая используется при программировании в Visual Basic:

Dim X as long

X = 32000

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

Будет ли вам полезна эта программа, если у вас достаточно много оперативной памяти?

Возможно, ответить на этот вопрос вам будет проще, если я поделюсь с вами своим опытом. У меня установлены 4GB DDR3 оперативной памяти, и пользуюсь я Windows 7 x64. За полгода я ни разу не наблюдал использования памяти на 100%. Но даже при 8GB я все равно буду пользоваться этой программой. Почему?

Несмотря на то, что у меня большой объем жесткого диска и мне можно не беспокоиться о размере файла подкачки, я хочу быть уверенным, что память используется системой максимально эффективно. Мощности этой программы вполне хватает, чтобы не допускать утечек памяти и использования самой памяти на пике её возможностей. Считается, что память это ресурс, который должен использоваться по максимуму. Я с этим тоже согласен, но лучше когда она используется с пользой, а не забивается мусором;)

Пример работы программы в реальных условиях

Среднее использование оперативной памяти в обычном режиме работы 1,62Гб (Windows 7 x64, куча сервисов в фоновом режиме, the bat, несколько браузеров и т.д.). После запуска Might&Magic Heroes VI, потребление памяти выросло на 520Мб до 2,14Гб. Я свернул игру и вручную запустил CleanMem, а через пару секунд использование оперативной памяти уменьшилось на 100Мб до 2,04Гб. При этом, игра не слетела и не потеряла в производительности, почему? Из зарезервированных под свои надобности 520Мб, игра на самом деле использовала только 420Мб, которые при очистке памяти Windows не трогал. Благодаря таким действиям pagefile.sys не раздувается, что приводит к более стабильной и быстрой работе ОС.

Итоги

В общем, CleanMem оказался простым, удобным и действенным инструментом, который помогает улучшить производительность системы и уменьшить нагрузку на оперативную память. При этом, программа не требует присутствия или повышенного внимания от пользователя, совершая все действия в тихом режиме, полностью автоматически. За все время использования программа ни разу не вызывала конфликты с системой и не приводила к ошибкам BSOD, как это часто бывает с программами такого класса. Настоятельно рекомендую к использованию в домашних условиях или маленьких офисов с не очень мощными компьютерами. Также, если вы занимаетесь настройкой компьютеров, советую устанавливать её на компьютеры людям старшего возраста, которым тяжело разбираться в компьютерах и, у которых чаще всего компьютеры собраны из устаревшего или слабого железа.

Альтернативы CleanMem

— Glary Utilities;

— Advanced SystemCare Free;

— Minimem;

— jv16 PowerTools

— SlimCleaner;

Скачать CleanMem v.2.5.0 можно отсюда:

Скачать CleanMem

rss