Как проверить наличие утечек памяти и что мне делать, чтобы их остановить?


    Возможно, вы слышали фразу: «Вы никогда не можете быть слишком богатым, слишком худым или иметь слишком много оперативной памяти». Оперативная память является жизненно важной частью компьютерной системы, обеспечивающей хранение компьютерных данных в энергозависимой памяти. Текущий рекомендуемый объем для новой сборки системы составляет 16 ГБ ОЗУ, а 32 ГБ в наши дни больше подходят для тех, кто хочет «заглянуть в будущее» или имеет более продвинутые потребности, такие как многозадачность, САПР или редактирование видео. Для еще более продвинутых пользователей 64 ГБ или 128 ГБ общей оперативной памяти системы могут быть легко оправданы.

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

    Таким образом, рекомендуется установить много оперативной памяти, с мантрой «чем больше оперативной памяти, тем лучше».

    Несмотря на переизбыток оперативной памяти на современных компьютерах, все еще могут возникать ситуации, когда системе не хватает памяти. Наиболее очевидным является одновременный запуск нескольких приложений, занимающих много памяти — программного обеспечения для редактирования видео 4K или смехотворно большого количества вкладок, открытых в браузере, — которые используют все доступные ресурсы памяти. Решение этой проблемы состоит в том, чтобы установить больше оперативной памяти и/или заставить компьютер запускать меньше программ одновременно.

    Что такое утечка памяти?

    Что такое утечка памяти?

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

    Когда компьютер работает нормально, ОЗУ динамически используется программным обеспечением, а ресурсы памяти распределяются по мере необходимости. Когда программному обеспечению больше не нужен ресурс ОЗУ, он «возвращается», чтобы при необходимости его можно было перераспределить для следующей программы. В ситуации с утечкой памяти оперативная память выделяется для программного обеспечения, но не освобождается, когда она больше не нужна. Это похоже на то, как память застревает в ловушке для тараканов: «Тараканы проникают внутрь, но не могут выбраться». По мере того, как это продолжается, большой кусок или даже весь объем оперативной памяти системы может быть задействован в этом дисфункциональном процессе.

    В конечном итоге это вызвано ошибкой программного обеспечения. Например, недавно сообщалось, что File Explorer в Windows 11 вызывает утечку памяти у некоторых пользователей. Обычно они исправляются довольно быстро, но они могут сильно повредить производительности вашего ПК, хотя и остаются проблемой.

    Что испытывает пользователь? К сожалению, ни одна версия Windows не отображает всплывающее окно, предупреждающее пользователя о возникновении утечки памяти, поэтому диагностировать проблему не так просто. Однако система может иметь множество симптомов, указывающих на утечку: снижение производительности, замедление работы плюс невозможность открытия дополнительных программ или полное зависание. Это часто усугубляется наличием большого количества доступной памяти; если утечка потребляет всего несколько МБ ОЗУ каждую минуту, может пройти день или два, прежде чем проблема достигнет критического уровня.

    Решения на этом этапе — закрыть вызывающий нарушение процесс в диспетчере задач или перезагрузить систему, что освободит всю оперативную память, чтобы процесс мог начаться снова. Хотя перезагрузка в качестве решения снова запустит систему, она не позволяет точно диагностировать проблему и не дает пользователю хорошего представления о том, что произошло, или о том, как избежать ее повторения. Это похоже на поджигание лужайки только для того, чтобы избавиться от нескольких одуванчиков — слишком много лечения для решения проблемы.

    Поиск утечки памяти

    Отслеживание утечки памяти может быть сложным процессом. Допустим, программа работает в течение короткого промежутка времени и имеет утечку памяти. Когда процесс завершается, это может быть не очевидной проблемой, если оперативной памяти больше, чем достаточно для поддержки других процессов. Однако с более длительной программой, которая захватывает больше оперативной памяти, она может в конечном итоге захватить всю оперативную память системы и остановить вашу установку.

    Использование монитора ресурсов Windows

    Чтобы найти утечку памяти, вы должны посмотреть на использование оперативной памяти системой. В Windows это можно сделать с помощью монитора ресурсов.

    В Windows 11/10/8.1:

    Нажмите Windows + R, чтобы открыть диалоговое окно «Выполнить»; введите «resmon» и нажмите «ОК».

    Открыв монитор ресурсов, выберите вкладку «Память».

    В Windows 7:

    Пуск > Все программы > Стандартные > Системные инструменты > Монитор ресурсов

    утечка мемов Рис.2

    Глядя на физическую память, начните с подтверждения того, что правильный объем отображается как установленный, чтобы убедиться, что нет проблем с оборудованием. Теперь посмотрите на объем доступной памяти и объем используемой памяти. Это покажет, не хватает ли системе памяти или ее достаточно.

    утечка мемов Рис.3

    Далее мы обращаем внимание на запущенные процессы, использующие память. Вместо того, чтобы прокручивать весь список, вы можете нажать «Зафиксировать (КБ)», чтобы переупорядочить список так, чтобы наиболее ресурсоемкие задачи отображались вверху. Это позволяет легко увидеть, какое программное обеспечение использует больше всего оперативной памяти. В приведенном выше примере это «Firefox.exe», более известный как браузер Firefox (для справки, на момент создания снимка экрана было открыто четыре вкладки). Также обратите внимание, что в верхней части процессов использовалось 39 процентов физической памяти, что указывает на достаточные резервы для дополнительных процессов.

    утечка мемов Рис4

    В правой части экрана отображаются мониторы с течением времени, которые показывают последние 60 секунд. На верхней панели отображается «Используемая физическая память», и мы видим, что она немного увеличивается со временем, но по-прежнему доступна значительная часть, что позволяет системе оставаться стабильной.

    Ограничения монитора ресурсов Windows

    Конечно, стоит следить за монитором ресурсов Windows, так как он может показать доступную память и процессы, которые используют больше всего ресурсов. Однако он также имеет некоторые существенные ограничения.

    Во-первых, он не контролируется постоянно. Он требует открытия монитора ресурсов и не работает постоянно в фоновом режиме. Кроме того, гаджеты Windows, которые были представлены в Windows Vista и продолжены в Windows 7, предлагали гаджет, который делал это. Как оказалось, эти гаджеты были уязвимы (как и большинство программ), поэтому они были сняты с производства и больше не доступны в Microsoft. Хотя мы никогда не думали, что будем тосковать по Vista, это была действительно полезная функция, от которой, возможно, отказались слишком рано.

    Другое ограничение заключается в том, что он возвращается только на 60 секунд. Если происходит утечка памяти и программное обеспечение закрывается, скорее всего, оно не будет поймано на месте преступления и правильно идентифицировано как виновник.

    Мини-монитор CleanMem

    Итак, поскольку в Windows нет надежного инструмента для решения проблемы утечки памяти, мы обращаем внимание на стороннее программное решение. Он называется CleanMem Mini Monitor, его можно скачать здесь.

    утечка мемов Рис5

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

    Утечка мемов Fig6

    На общей вкладке CleanMem Mini Monitor вы можете выбрать автоматический запуск программы при запуске системы. Фоновые цвета зеленого цвета для 0–50% использования, желтого для 50–75% использования и красного для более чем 75% использования дают хорошее визуальное представление об используемой оперативной памяти и о том, становится ли она критически низкой.

    утечка мемов Fig7

    В бесплатной версии программы настройки расширенного монитора заблокированы и не настраиваются пользователем. Тем не менее, они дают представление о том, что делает CleanMem Mini Monitor. Мы видим, что он настроен на автоматический запуск каждые пять минут, когда использование памяти составляет 75 процентов или более. Он также настроен на автоматическую очистку кеша файлов каждые пять минут, если размер кеша файлов составляет 50 МБ или более. Хотя это обычно используется как программа «установи и забудь», вы также можете щелкнуть программу правой кнопкой мыши и запустить ее вручную по мере необходимости.

    Чем больше вы знаете о том, что искать и как бороться с утечками памяти, тем лучше. Хотя CleanMem не устранит все проблемы с утечкой памяти, он хорошо справляется с возвращением выделенной памяти в доступное состояние. Хотя полная перезагрузка системы является окончательным решением для ошибочно распределенной ОЗУ, вы можете улучшить стабильность своей системы с помощью CleanMem и сделать перезагрузку менее распространенной.

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

    Предыдущая статьяВот почему тебе стоит обновить свой iPhone прямо сейчас
    Следующая статьяApple iPad Air 5 (2022) поддерживает беспроводную зарядку?
    Илларион Товаркин
    Илларион Товаркин - талантливый писатель, страстно любящий все, что связано с играми. От захватывающих экшн-игр до сложных ролевых игр, они обладают глубоким пониманием игровой индустрии и того, что делает игру великой. Благодаря острому вниманию к деталям и способности создавать захватывающие сюжетные линии, Илларион Товаркин способен перенести читателей в захватывающие игровые миры, наполненные приключениями и азартом. Пишет ли он о последней игре-блокбастере или углубляются в историю классических игр, его статьи всегда увлекательны и информативны. Так что если вы поклонник игр или просто ищете отличное чтение, обязательно ознакомьтесь с его работами - вы не будете разочарованы!