• Выделение памяти оперативной


    Свыше 10 способов, как высвободить оперативную память на Ваших устройствах с Windows или Mac

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

    Что такое ОЗУ?

    Оперативная память (ОЗУ, или по-английски RAM) вашего компьютера хранится на чипе памяти, который обычно находится на материнской плате. Это место, где ваш компьютер хранит краткосрочные данные. Оперативная память – это центр хранения всех активных и запущенных программ и процессов. Ваш компьютер использует информацию, хранящуюся в оперативной памяти, для выполнения задач, одновременно получая и выполняя другие функции.

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

    Как максимально эффективно использовать вашу оперативную память

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

    Перезагрузите ваш компьютер

    Первое, что вы можете сделать, чтобы попытаться освободить оперативную память, - это перезагрузить компьютер. Когда вы перезагружаете или выключаете компьютер, вся ваша оперативная память (сохраненные данные) будет стерта, а программы будут перезагружены. Это потенциально может очистить некоторые процессы и программы, которые работают в фоновом режиме и используют вашу оперативную память.

    Обновите ваше ПО

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


    Попробуйте другой браузер

    Что еще вы можете попробовать - это использовать другой браузер, так как некоторые из них, как известно, используют больше данных, чем другие. Попробуйте использовать, например, Chrome или Firefox, которые обычно являются хорошими браузерами с точки зрения потребления оперативной памяти.

    Очистите ваш кэш

    Если вам все еще не хватает оперативной памяти, следующий шаг – это попытаться очистить свой кэш (скешированные данные). Иногда ваш кэш может занимать много места, потому что он использует оперативную память. Кэш хранит информацию, которую ваш компьютер использует для перезагрузки страниц, которые он открывал ранее, чтобы не загружать их снова. Это может сэкономить вам время при просмотре, но если вам не хватает оперативной памяти, то кэшем вы можете пожертвовать без проблем.

    Удалите расширения браузера

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

    5 способов, как высвободить ОЗУ в Windows 10

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

    1. Проверьте память и очистите процессы


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

    Чтобы проверить память вашего компьютера, выполните следующие действия:

    1.       Нажмите на клавиатуре одновременно клавиши Ctrl+Alt+Del и выберите Диспетчер задач.

    2.       Выберите закладку «Процессы».

    3.       Нажмите на названии столбца «Память», чтобы отсортировать процессы по объему используемой памяти.

    Теперь вы можете видеть, какие из ваших программ требуют больше всего памяти на вашем компьютере. Если вы обнаружите какой-то подозрительный процесс, который «пожирает» много вашей памяти, вы можете остановить его, а также удалить соответствующие программы, которые вам не нужны или не используются. Но! Если вы не чувствуете себя уверенным в данном вопросе, то лучше обратиться к специалистам.

    2. Отключить из автозагрузки те программы, которые вам не нужны

    Если вы используете свой компьютер в течение нескольких лет, то вы, вероятно, скачали изрядное количество программ, про которые вы либо забыли, либо больше не используете их. После того, как закладка «Процессы» покажет вам, какие программы потребляют вашу память, то, возможно, вы захотите перейти к настройкам автозагрузки, чтобы удалить из нее те программы, которые вам больше не нужны.

    Чтобы отключить автозагрузку программ, выполните следующие действия:

    1.       Выберите закладку «Автозагрузка» в Диспетчере задач.

    2.       Нажмите «Влияние на запуск», чтобы отсортировать программы по степени использования.

    3.       Нажмите правой кнопкой мыши, чтобы отключить любые ненужные вам программы.

    Автозагружаемые программы – это те программы, которые активируются при загрузке вашего компьютера. Когда эти программы запускаются, каждая из них в фоновом режиме без вашего согласия потребляет определенный объем оперативной памяти. И хотя этот объем может быть не очень большой, но суммарно с другими программами и со временем это значение может возрасти. Убедитесь, что автозапуск всех ненужных программ отключен или такие программы вовсе удалены.

    3. Остановите работу фоновых приложений


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

    Чтобы остановить фоновые приложения:

    1.       Перейдите к настройкам компьютера.

    2.       Нажмите на раздел «Конфиденциальность».

    3.       Прокрутите вниз панель слева до «Фоновые приложения»

    4.       Отключите все приложения, которые вы не используете.

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

    4. Очищайте файл подкачки при завершении работы

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

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

    1.       Наберите «Редактор реестра» в строке поиска в стартовом меню

    2.       Нажмите кнопку «Да», чтобы разрешить Редактору Реестра внести изменения на вашем устройстве.

    3.       Слева прокрутите и выберите «HKEY_LOCAL_MACHINE»

    4.       Прокрутите ниже и выберите «SYSTEM»

    5.       Затем выберите «CurrentControlSet»

    6.       Найдите и выберите «Control»

    7.       Прокрутите и выберите «Session Manager»

    8.       Найдите и выберите «Memory Management»

    9.       Выберите «ClearPageFileAtShutdown»

    10.    Введите число «1» в качестве значения и нажмите OK.

    5. Уберите визуальные эффекты


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

    Чтобы получить доступ к визуальным эффектам на вашем компьютере, выполните следующие действия:

    1.       Откройте Проводник.

    2.       В панели слева нажмите правой кнопкой мыши на «Этот компьютер», чтобы выбрать свойства.

    3.       Нажмите слева «Дополнительные параметры системы»

    4.       Выберите закладку «Дополнительно».

    5.       Перейдите к настройкам в разделе «Быстродействие»

    6.       Измените на «Обеспечить наилучшее быстродействие»

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

    5 способов высвободить ОЗУ на компьютере с Mac

    Для пользователей Mac существует множество удобных инструментов для мониторинга и высвобождения оперативной памяти на компьютере.

    1. Настройте Finder

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

    Чтобы открыть настройки вашего Finder:

    1.       Нажмите «Finder» в левом верхнем углу экрана.

    2.       Нажмите правой кнопкой мыши и в выпадающем меню выберите «Preferences».

    3.       Нажмите на опции «Open folders in tabs instead of new windows», чтобы открывать папки на вкладках, а не в новых окнах.

    Существует еще один способ очистить оперативную память, объединив окна в вашем Finder. Вместо этого в левом верхнем меню выберите «Window», а не «Finder». Далее выберите «Merge All Windows», чтобы все ваши окна Finder открывались в одном окне. Это позволит вам сэкономить на использовании оперативной памяти, а также убрать лишнее с вашего рабочего стола.

    2. Проверьте монитор активности Activity Monitor

    Чтобы отслеживать использование оперативной памяти на Mac, вы можете проверить монитор активности, который показывает вам, сколько памяти используется и какие процессы ее используют. Используйте Монитор активности, чтобы определить, какие приложения больше всего потребляют оперативной памяти. Удалите те приложения, которые вы больше не используете.

    Чтобы проверить монитор активности:

    1.       Найдите «Activity Monitor» в вашей панели поиска spotlight (Ctrl + Пробел).

    2.       Нажмите на закладке «Memory».

    3.       Удалите нежелательные приложения.

    3. Проверьте использование процессора (CPU)

    Вы также можете использовать приложение Activity Monitor для проверки работоспособности и уровня использования вашего процессора. CPU – это ваш центральный процессор, и он выполняет от компьютерных программ инструкции, которые  хранятся в оперативной памяти.

    Чтобы контролировать свой процессор, просто выберите вкладку «CPU». Именно здесь вы можете увидеть, какие приложения больше всего потребляют ресурсы процессора.

    4. Почистите программы и приложения

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

    5. Очистите дисковое пространство

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

    Дополнительные способы высвобождения ОЗУ на устройствах с Windows или Mac

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


    Установите «очиститель» памяти

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

    Увеличьте объем ОЗУ

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

    Проверьте на вирусы и вредоносные программы

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

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

    Источники: ComputerHope | WindowsCentral | HelloTech | DigitalTrends

    Мониторинг физической против значения выделенной памяти

    ©

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

    Натолкнул меня на эту мысль мой хороший коллега под ником М., у которого я так же обнаружил некорректные цифры потребления оперативной памяти. Да, они часто встречаются в видео и комментариях, где ребята тщетно пытаются выяснить у кого больше FPS и, в частности, показать работоспособность данной игры на конкретно выбранном компьютере. Но ровно как FPS, без показателей минимальных значений 0.1/1, времени кадра и максимального значение, это всего лишь среднее значение в данный момент, так и потребление озу, в варианте «физической», цифра, что не отражает реального потребления оперативной памяти всех процессов. Да да, у нас есть две цифры на выбор в программах и даже в диспетчере задач, в разделе «производительность» и вкладке «память», есть используемая (сжатая) и выделенная. Обратите внимание, что эти цифры отличаются, при том выделенная заметно больше. Сразу скажу, что в силу своего непрофессионализма данной области, блог будет иметь характер, с точки зрения простого пользователя.

    Спойлер

    Итак, в английском языке «выделенная память» в windows 10 называется commit charge (в диспетчере задач просто committed). Если интересует подробности данного термина и его характеристика, то вы теперь всегда можете узнать больше в интернете. Однако здесь, я попробую вкратце охарактеризовать простыми словами. Конечно этот параметр можно найти, к примеру в MSI Afterburner, сразу под строчкой Загрузка ОЗУ (RAM Usage) и в HWiNFO, части сенсоров, подраздела System: X System Product Name, где X название ваше материнской платы, а сама строчка Virual memory Committed и Virual memory Available, т.е. занятая и свободная виртуальная память (всё верно, виртуальная или выделенная память). Стоит внести ясность, что если у вас есть файл подкачки, то это значение будет просуммировано с объёмом вашей оперативной памяти.

    Итак, к цифрам. Начнём с наиболее яркого примера – RDR2, где в моём бенчмарке указано 18 Гб потребления оперативной памяти. Чего не скажешь о моём коллеге М. (скриншот), где только 9,6 Гб, зато яркая строчка DDR4 – 32Gb (4000MHz).

    Зачем там 32 Гб, если потребление не больше 10-ти? И можно подумать, что я специально излишне нагружаю оперативную память бразуером с 300 вкладками. Последнее опровергается просто – в конце видео (ниже под спойлером) продемонстрирован диспетчер задач, в том числе видно время работы ПК и вкладка памяти – используется (сжатая), которая соответствует 10,5 Гб и выделено уже 18Гб. Да, значение используемой память похоже на значение со скриншота товарища М. Выделенная больше физической всегда, и об этом дальше.

    Спойлер

    https://www.youtube.com/watch?v=yyQkGsHTAN0&feature=youtu.be

    Стоит напомнить, что файл подкачки (ФП) служит для расширения оперативной памяти, т.е. используется при её нехватке. Система может отправлять неактивные или свёрнутые программы в ФП, так у меня как то оказалась Far Cry: New Dawn там. В моём случае 18 Гб превратятся 16 в оперативной и 2 Гб занято в ФП. Хотя нет, сейчас у меня 32Гб (2х16) и отключенный ФП, а значит всё в оперативной памяти. Проблем с этим нет вот уже многие годы. А это значит, если у тебя 16 Гб (или меньше), то отключать его не стоит, поскольку при неправильном мониторинге (выбранной загрузка озу или мониторинг физической памяти), в данной игре будет вылет с последующим сообщением о нехватке памяти, и удивлённым, вопрошающим лицом – «почему же при 10 Гб потребления ОЗУ в RDR2 у меня нехватка памяти?». Наконец перейдём к определению и всё что я нашёл о выделенной памяти и причинах, почему данное значение больше.

    Как гласит сайт майкрософт, выделенная (так же виртуальная) – максимально доступная память, включающая все файлы подкачки, которую система может поддерживать. Если это значение достигает предела, система и процессы могут не получить выделенную память. Это состояние может вызвать зависание, сбой и другие неисправности.

    Спойлер

    Попросту это виртуальное адресное пространство частного процесса, часть которого может находится как в ОЗУ, так и файле подкачки. Так существуют и неиспользуемые, выделенные, области для будущих обращений программ. Поэтому это значение больше, чем физическая (используемая). Т.е. по сути, это место зарезервировано операционной системой под кэш, драйвера, программу и т.д. Не забывайте, что очистку кэша можно произвести и такой программой, как Empty tandbyList, прописав её в планировщик заданий. В итоге, когда запускаешь windows, то уже увидишь порядка 4 Гб в ОЗУ реально занятного пространства, а спустя, условно, часов 5 порядка 5-6 Гб. И совсем необязательно это строго область файла подкачки (пространство в HDD/SSD). Личное наблюдение в течении суток (и более при системе 32 и 16 Гб) показало, что у меня был занят в простое файл подкачки порядка 50 мегабайт, максимум 300. Сам файл подкачки «по выбору системы» и объём автоматически увеличивался, по мере необходимости. При фиксации 2Гб (наличии планок 8+8) вылетела ошибка нехватки, т.к. объём перевалил уже за 18Гб. Для меня наиболее ярким примером являются вышеупомянутая RDR2, а так же ARK, Tom Clancy's The Division 2, Horizon Zero Dawn К последним играм, прогулявшись по youtube, я даже нашёл пару роликов, где кто-то всё же догадался добавить верные значения потребления ОЗУ. Не забывайте, что игра кэширует данные в оперативную память, и всего да 10 минут в игре можно потерять порядка 2Гб уже, легко. За 2 часа игры в ARK я терял 6Гб (к доступных 16 ОЗУ + файл подкачки), а начиналось всё с 14.

    Спойлер

    Приходим к выводу, что большинство роликов, хоть здесь, хоть на youtube, и конечно комментарии, связанные с величиной FPS (и всё?), а тем более потреблением ОЗУ, с красивыми цифрами, как у моего коллеги М., это видео, которые не несут большой ценности, элементарно из-за озу, просто вводят в заблуждение. Отслеживайте правильно, отмечая верные значения, если хотите показать действительную картину работу и оптимизацию на конкретно твоей конфигурации пк. Это будет хороший пример и приятное зрелище.

    Грамотные и приятные комментарии по делу, критика, всегда приветствуется. Всем спасибо!

    2 способа увеличения оперативной памяти

     

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

    Зачем увеличивать память Java

    Задачу по увеличению Java памяти пользователи ставят перед собой в следующих случаях:

    • Не запускается игра Minecraft. Геймер получает сообщение, что для запуска не хватает виртуальной памяти, хотя минимальные требования по оперативке соблюдены.
    • Проблема с памятью кучи Java. Написанное серверное приложение не запускается. Для его полноценной работы требуется 512 Мб оперативки на компьютере, но трудности с запуском возникают даже при имеющихся 4 Гб.

    Исправить проблему можно двумя способами.

    Как выделить память Java

    Выделить Джава-модулю больше оперативной памяти возможно через «Панель управления». Способ удобнее рассмотреть на примере проблем с запуском игры Minecraft.

    Инструкция:

    1. Открывается «Панель управления».
    2. В поиске нужно найти Java-модуль.
    3. После запуска ПО в шапке выбирается раздел Java.
    4. В запустившемся окне открывается View.
    5. Для корректной работы модуля удалите лишние строки, если они есть. Должна остаться только одна, где указана последняя версия ПО. Важно обратить внимание на разрядность.
    6. Для увеличения памяти производится изменение столбца Runtime Parameters. При этом параметры записываются в следующем виде: -Xincgc-Xmx2048M, где 2048 – 2 Гб выделяемой оперативки. Важно писать без пробелов. В 32-битной ОС рекомендуется выделение 768 Мб.
    7. Нажимается ОК, ОС перезагружается.

    Расшифровка используемых команд:

    • Xincgc – освобождает неиспользуемые объекты из памяти;
    • Xmx – максимальный объем оперативки;
    • Xms – минимальный объем.

    Если это не помогло запустить Minecraft, переустановите модуль Java и игру. После удаления очистите реестр с помощью CCleaner.

     

    Увеличение памяти с помощью переменных среды

    Увеличить оперативную память в Джаве можно с помощью переменных системной среды. В виртуальной машине прописываются два аргумента, упомянутых ранее: -Xms и -Xmx.

    Чтобы система воспринимала написанные аргументы, нужно добавить переменную с названием «_JAVA_OPTIONS».

    Если количество памяти, отведенной для работы Java, в два раза меньше имеющейся оперативки, то команды прописываются по следующей инструкции:

    1. Открываются «Свойства» на ярлыке «Мой компьютер».
    2. Из левой части выбираются «Дополнительные параметры системы».
    3. На вкладке «Дополнительно» производится одиночный клик по «Переменные среды».
    4. Нажимается кнопка «Создать».
    5. Имя переменной: «_JAVA_OPTIONS», аргументы: «-Xms512m -Xmx1024m».

    В примере объем оперативки составлял 1 Гб.

    Видео: 3 способа выделить больше памяти Java.

    Таким образом в статье рассмотрено два метода увеличения оперативной памяти, выделяемой для работы Java-модуля.

     

    Загрузка...

    Все об оперативной памяти — гайд и тесты в разных режимах работы | Оперативная память | Блог

    Сколько оперативки нужно для современных игр, как правильно подобрать и установить несколько планок? А разгон, а точно хорошо все будет? В этом материале подробно разбираем все вопросы про оперативную память и проводим сравнительные тесты. Информация актуальна как для DDR3, так и для DDR4 и ориентирована на наиболее распространенные платы с двухканальным режимом работы.

    Варианты установки памяти

    Первый шаг к стабильной и быстрой памяти — ее правильная установка. Просто старайтесь держать в уме следующие факты.

    Установка одной, двух, трех или четырех планок — что лучше?

    Для оптимального быстродействия ставить лучше четное количество планок памяти. Следующий график показывает, как меняется производительность в зависимости от количества установленных модулей. Дополнительно в него были добавлены два значения: комбинация из 4 ГБ и 8 ГБ модулей на частоте 1333 и 1600 МГц. Command Rate установлен на единицу.

    Какой вывод можно сделать? Одна планка памяти выдает худшую производительность, так как отсутствует двухканальный режим. Две планки дают стандартную производительность. Три планки хуже, чем две, потому что контроллеру приходится работать одновременно с двухканальным и одноканальным режимами, а ваша система не может знать наверняка, когда какой требуется. Четыре планки выдают чуть большую производительность (всего на 1-2 %), чем две, но не за счет увеличенной емкости, а за счет количества модулей, так как у контроллера в распоряжении появляется больше банков памяти, к которым можно обратиться (аналогично ранговости).

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

    Если у вас четыре или более слотов под ОЗУ на материнской плате, тогда знайте, что они разделены на пары и обычно окрашены в разные цвета. Например, первая пара черная, а вторая красная. Распространенная ошибка, когда две планки ставят рядом в разные пары. Это приводит к тому, что память будет работать в одноканальном режиме и выдавать вдвое меньшую скорость копирования, чем она могла бы быть. По этой же причине, когда ограничен бюджет, рекомендуют купить две планки по 4 ГБ, а не одну на 8 ГБ. Проверить, какой режим работы используется у вас в данный момент, можно с помощью программы CPU-Z.

    Существуют также гибридные материнские платы, которые имеют слоты как DDR3, так и DDR4 (или DDR2 + DDR3 на старых платах) одновременно. Память разных поколений вкупе использовать нельзя, компьютер просто не запустится.

    Можно ли ставить память с разной частотой или разными таймингами вместе?

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

    Можно ли ставить память c разной емкостью вместе?

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

    Можно ли ставить память с разной ранговостью вместе?

    Совмещать одноранговую и двухранговую памяти парой в двухканальный режим не рекомендуется, так как это может приводить к вылету системы. Опять же, все зависит от вашей материнской платы. А вот поставить две разные пары можно — если первая пара модулей будет двухранговой, а вторая — однораноговой, то все должно быть нормально. Более подробно об этом параметре смотрите в разделе характеристик.

    Максимальный объем: сколько можно поставить?

    У каждой материнской платы есть свои ограничения: максимальный поддерживаемый объем памяти и допустимая емкость одного модуля. Необходимо смотреть спецификации:

    Видим, что материнка имеет 4 слота и поддерживает до 32 ГБ памяти. Простым делением узнаем, что максимальный объем одного модуля равен 8 гигабайтам.

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


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

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

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

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

    Тестовая конфигурация

    Все тесты этой статьи будут выполнены при разрешении 1920х1080 и включенной 16-кратной анизотропной фильтрации. По умолчанию использоваться будут только две планки памяти, за исключением тестов, рассчитанных на иное количество. Частота процессора зафиксирована на значении 4,2 ГГц, а Command Rate = 2, если не указано другое.

    • Блок питания: Corsair RM 850W Gold
    • Материнская плата: Asus Maximus VII Hero (BIOS 3201)
    • Процессор: Intel Core i7 4790K
    • Видеокарта: Zotac GeForce GTX 1070 AMP! Extreme
    • Оперативная память: 4 х Kingston HyperX Savage [HX318C9SRK2/8]
    • Системный накопитель: SSD Smartbuy Revival (1) 240 GB
    • Игровой накопитель: Smartbuy Splash (2019) 256 GB
    • Операционная система: Windows 7 SP1 x64

    Профили памяти

    Как посмотреть поддерживаемые профили памяти?

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

    Если память уже установлена в вашем ПК, то можно воспользоваться бесплатной утилитой CPU-Z. Это максимально легкая и простая программа, которая показывает четыре основных профиля (но не все поддерживаемые). Просто выбираем номер слота в разделе SPD и смотрим данные. Можно заметить, что частота (Frequency) отображается какая-то низкая. Дело в том, что DDR обозначает Double Data Rate, то есть двойная скорость передачи данных. Чтобы получить актуальную частоту, вам нужно умножить значение на два.

    Также существует и платный аналог — AIDA64. Она не только показывает все профили памяти, но еще и позволяет узнать латентность и пропускную способность.

    Что такое JEDEC и XMP?

    Это названия профилей вашей оперативной памяти.

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

    XMP — это оверклокерский набор параметров, тщательно протестированный с завода конкретно для вашей модели памяти. Профиль не следует каким-либо стандартам и предлагает наилучшие параметры, выбранные производителем. То есть, выбрав данный профиль в настройках биоса, вы получите легкий и безопасный разгон. В отличие от JEDEC, поддерживается не всеми моделями, нужно смотреть спецификации. Чтобы его активировать, ваша материнская плата тоже должна поддерживать XMP профили.

    Пример памяти из конфигурации: ее базовый профиль JEDEC это 1600 МГц с таймингами [11-11-11-28], простым переключением на XMP-1866 частота меняется на 1866 МГц с таймингами [9-10-11-27], то есть мы получаем не только повышенную частоту, но и более низкие задержки, что точно хорошо скажется на производительности системы.

    Что будет, если в биосе выставить неподдерживаемый профиль? 

    В случае, если вы попытаетесь выставить в биосе частоту, для которой нет профиля у вашей памяти, то произойдет один из трех возможных вариантов:

    1. Материнская плата выставит тайминги от поддерживаемого профиля, максимально близкого к той частоте, что выставили вы.
    2. Материнская плата выставит универсальный оверклокерский набор таймингов, В моем случае это [11-13-13-35], и они подходят для всех частот вплоть до 2400 МГц.
    3. Компьютер попросту не запустится и потребуется сброс настроек.

    Тесты профилей в приложениях

    Для диаграмм я решил использовать 5 профилей: наихудший JEDEC, родной JEDEC, оба поддерживаемых XMP профиля и разогнанный профиль (OC).

    «Сэм», «Резидент» и «Метро» восприняли увеличение скорости памяти равнодушно, так как им полностью хватает ресурсов процессора. А вот «Трекмания» активно умеет использовать только одно ядро, которое загружено на 100 %, поэтому память оказывает ощутимое влияние на частоту кадров. 

    Характеристики памяти

    Частота

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

    Следующие графики покажут, насколько сильно будет меняться производительность в зависимости от частоты. Тайминги при этом зафиксированы на отметке [11-13-13-35].

    Тайминги

    Тайминги памяти — это внутренние задержки, выраженные в тактах, то есть время, по прошествии которого происходят операции, чтения, записи, обработки информации, подачи напряжения и тд. Чем они меньше – тем лучше. В характеристиках обычно указывают только 3 или 4 тайминга, которые оказывают наибольше влияние на производительность, например 11-11-11-28 (Они же “CL”-“tRCD”-“tRP”-“tRAS”).

    Помимо основных вышеуказанных таймингов, существует еще более 20, доступных для настройки в биосе. Их ручной разгон абсолютно бессмысленнен. Ради интереса, я решил попробовать выжать из них максимум, базируясь на XMP профиле. Большинство из них удалось снизить на 1-3 такта, что в сумме дало выигрыш… в 0,4 наносекунды. Стоило ли оно того? Определенно нет. Никакого влияния на приложения замечено не было.

    В виде исключения выступают “tRFC“ (REF Cycle Time) и “tREFI” (Refresh Interval), разгоном лишь этих двух параметров можно выиграть до 4 наносекунд латентности. Причем первый нужно понижать, а второй наоборот – повышать.

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

    Отдельно стоит поговорить о таком «мистическом», параметре как Command Rate. Он может принимать два значения: 1, 2. Несмотря на то, что его приписывают к основным таймингам памяти, к ней самой он отношения не имеет. Это лишь скорость контроллера, который управляет вашей памятью, время, необходимое на преобразование команд.

    Как он влияет на стабильность системы — четкого ответа нет, все зависит от качества вашей материнской платы. В интернете часто пишут, что уменьшать этот параметр не рекомендуется, так как память теряет разгонный потенциал и становится нестабильной. Но лично в моей практике не попадался ни один ПК, который бы плохо работал от выставления Command Rate на 1. Более того, в случае тестовой конфигурации на разгонный потенциал это не повлияло ни на йоту.

    Разница между CR1 и CR2 может составлять от 0 до 5 % производительности в зависимости от ряда факторов. А если говорить о латентности, то разница составляет 0.5-1.5 наносекунды.

    Пропускная способность

    Пропускная способность — это скорость работы памяти с данными. То есть объем информации, который память может обработать за секунду времени. Например, 30 гигабайт в секунду.

    Вопрос: что лучше — 1 планка на 1600 МГц или 2 планки по 800 МГц? Казалось бы, ответ очевиден, в обоих случаях достигается одинаковая пропускная способность (12 ГБ/сек), но у памяти с частотой 800 МГц ниже тайминги, значит она должна победить. Однако внезапно происходит полный разрыв шаблона, так как одноканальная планка на 1600 МГц работает быстрее на 15 %. Почему же так?

    А дело в том, что пропускная способность памяти и ее частота — это совершенно разные параметры. Повышение частоты увеличивает пропускную способность и уменьшает латентность, однако повышение лишь пропускной способности не сказывается на других параметрах. Активация двухканального режима удваивает именно пропускную способность, а не производительность. Поэтому прирост скорости в приложениях может составлять от 1 до 30 % в зависимости от вашего процессора и ряда других факторов.

    Емкость. Сколько гигабайт памяти нужно?

    На 2020 год актуальными будут только два варианта: 2 х 4 ГБ или 2 х 8 ГБ. Почему так?

    Операционная система, будь то Windows 7 или Windows 10, потребляет от 1 до 3 ГБ памяти в зависимости от загруженности программами. При необходимости, ОС может освобождать память, скидывая данные в файл подкачки, ужимаясь всего в ~600 мегабайт. А большинство игр потребляют от 1 ГБ до 4 ГБ памяти без учета операционной системы.

    Лично мной, помимо тестовых игр для графиков были также протестированы и следующие:

    • Killing Floor 2
    • Project Cars 2
    • GTA 5
    • Far Cry 5
    • Shadow of the Tomb Raider

    Все они без проблем заработали всего с 4 ГБ памяти в системе, несмотря на то, что у некоторых указано минимум 8 ГБ в системных требованиях. Единственное замеченное ухудшение по сравнению с 16 ГБ — более продолжительные загрузки, и в некоторых случаях фризы, когда память забита впритык.

    Само собой, сборка с 8 ГБ памяти уже отыграет себя по полной, не заставляя ОС и игру выкручиваться под маленький объем. Тандем из 2 х 4 ГБ памяти и SSD накопителя будет отличным решением для среднебюджетного ПК. Ну, а 2 х 8 ГБ — идеально для мощного топового ПК без компромиссов.

    Но почему не 32 ГБ и более? Потому что это не нужно, вот прямо совсем. Серьезно, лично я, какую бы мультизадачную ахинею ни творил на своем компьютере, ни разу не видел, чтобы было загружено более 12 ГБ оперативной памяти. Ну, разве что если ее специально забивать. Конечно, дело ваше, если есть бюджет, то почему бы не порадовать себя циферками в свойствах системы, да и рам диском тоже можно побаловаться.

    Что такое латентность?

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

    Если не гнаться за максимальной производительностью, то для игр вполне достаточно <=70 наносекунд латентности, чтобы связка процессор-память работала как надо.

    Что такое ранговость?

    Ранговость памяти (иногда еще называют «упаковка чипов») — это способ набора чипов на ее плате. То есть количество банков, к которым может обратиться контроллер памяти. Теоретически, чем их больше — тем лучше. Если у вашей памяти более 8 чипов, значит она двухранговая, а если меньше или равно — одноранговая.

    Двухранговая память быстрее, чем одноранговая, но это преимущество незначительно. Прирост может составить 1-2 % при условии, что приложению не хватает процессора. В большинстве же случаев разница вообще не будет заметна. 

    Я считаю, что это не то, о чем стоит париться при выборе памяти (только если вы не хотите докупить второй модуль к первому имеющемуся). Тем более, не все производители пишут эту характеристику, да и наличие кожуха осложняет диагностику. Лучше обратить внимание на тайминги и частоты. Проверить ранговость можно с помощью все той же CPU-Z.

    Что такое ECC и буферная память?

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

    Разгон

    Разгон позволяет взять частоты, которые значительно превышают стандартные значения профилей вашей памяти. На примере DDR3 — переключить с 1333 МГц на 1600 МГц удается почти всегда. Само собой, материнская плата тоже должна поддерживать большую частоту.

    Вариант №1. Простой универсальный

    Идеальная попытка/способ разгона для новичков. Мы просто повышаем в биосе частоту на одну ступень из списка доступных и смотрим, что из этого получилось. Компьютер запустился? Отлично, повышаем еще. Как только нашли максимальную стабильную частоту, то проверяем латентность через айду, стала ли она лучше, или такой разгон был бессмысленнен, и параметры стоит вернуть на место.

    В моем случае память разогналась до частоты 2400 МГц. Универсальный набор таймингов идеально вписался, значения [11-13-13-35] стали для нее наилучшими и дополнительных действий не потребовалось.

    Вариант №2. Продвинутая настройка

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

    В этом случае разгон проводится вручную, и я объясню его на примере памяти с частотой 1600 МГц и таймингами 11-11-11 (четвертый тайминг я намеренно не указал, так как частота на него практически не влияет, можно использовать базовый).

    1. Повышаем тайминги сразу на 5 тактов до 16-16-16.
    2. Начинаем искать максимальную частоту: ставим 1866 МГц — компьютер стартует. 2133 МГц — компьютер стартует. 2400 МГц — компьютер стартует. 2600 МГц — компьютер не запускается. Откатываемся обратно на 2400 МГц — это и есть наша наибольшая частота.
    3. Оптимизируем тайминги, так как 16-16-16 — вероятно не лучший набор для нашей частоты. Поочередно понижая каждый из них на единичку и перезагружаясь, получаем значения 11-13-13, которые будут наилучшими для частоты 2400 МГц. Вот и весь принцип разгона.

    Стоп-стоп, а как же напряжение? Да, при разгоне часто советуют повысить напряжение, якобы это улучшает стабильность и дает больший разгонный потенциал. На практике, память разгоняется и стабильно работает даже без повышения напряжения, либо же материнская плата сделает все за вас в режиме Auto. Если очень хочется попробовать улучшить значения разгона, можете повысить напряжение (на свой страх и риск) до 1,65 В для DDR3 или же до 1,45 В для DDR4.

    Главное — по окончании разгона не забудьте проверить память на ошибки, например встроенной в операционную систему утилитой «Средство проверки памяти Windows» или же программой MemTest86. Ведь иногда память может становиться нестабильной после разгона, и проявится это далеко не сразу — например, на следующий день внезапно зависнет система или игра. В таком случае тайминги нужно будет повысить дополнительно еще на 1 такт или же вовсе вернуть настройки по умолчанию.

    Что делать, если после разгона памяти компьютер перестал запускаться?

    Если компьютер ушел в бесконечный цикл перезагрузки, то можно попробовать обесточить блок питания примерно на 10 секунд, а затем снова включить. Биос выдаст сообщение в духе «Overclocking Failed» и даст вам возможность поменять настройки или сбросить их. Работает не на всех платах.

    Второй вариант — нажать специальную кнопку на плате для сброса настроек биоса. Обычно она подписана как «clr_cmos».

    Третий способ, который точно сработает — вытащить батарейку материнской платы на несколько минут и вставить обратно. В результате такого действия сбросятся все настройки биоса.

    Взаимодействие памяти с комплектующими ПК

    Оперативная память — это посредник ваших комплектующих, представляющий из себя следующую схему: Быстрая память → более быстрый процессор → лучшее использование потенциала видеокарты → больший FPS в играх.

    Если вашей игре не хватает производительности процессора/памяти, то и видеокарта не сможет грузиться на 100 % (при отключенной вертикальной синхронизации).

    Влияние памяти на процессор

    Оперативная память тесно связана с вашим процессором. Чем быстрее память, тем лучше отклик процессора и его производительность. Простой разгон памяти может увеличить потенциал процессора до +15 %, что хорошо видно на примере тестов в программе WinRar.

    Для полноты картины я решил провести еще один квартет тестов, для которых частота процессора была уменьшена до 2,4 ГГц и количество потоков уменьшено вдвое.

    Здесь уже прирост чуть более ощутим в отличие от 1-кадрой разницы при частоте 4,2 ГГц.

    Примечание: даже если ваша игра показывает, что процессор загружен всего на 50 %, это не обязательно означает, что ей хватает его производительности. То есть увеличение частоты процессора или памяти все равно может улучшить частоту кадров.

    Влияние процессора на память

    Что-что? И в обратном направлении тоже? Да, все верно: чем выше частота процессора, тем ниже латентность памяти. При этом количество ядер или потоков значения не имеют.

    Следующий график наглядно показывает зависимость латентности от частоты процессора на разогнанном профиле памяти (2400 МГц). Command Rate выставлен на единицу.

    Получается, что 43,2 наносекунды — это наилучшая латентность, которую мне удалось получить на тестовой конфигурации.

    Влияние на дискретную видеокарту

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

    Чтобы убедиться в этом наверняка, я использовал игровой бенчмарк Aliens vs. Predator Benchmark. Его преимущество состоит в минимальном использовании процессора. Разница между наихудшим одноканальным профилем памяти и наилучшим двухканальным профилем, при средней частоте кадров ≈175 составила… всего 1 фпс, что вообще в пределах погрешности.

    Влияние на встроенную видеокарту

    А вот для встроенных видеокарт все как раз таки наоборот — они не имеют собственной памяти и просто заимствуют оперативную. То есть, чем быстрее будет ваша память, тем более высокую частоту кадров в играх вы получите.

    Для следующего графика будет использоваться встроенная Intel HD Graphics 4600. Для наглядности, базовый профиль JEDEC был протестирован в одноканальном и в двухканальном режимах, в графиках они отмечены как SCJ и DCJ соответственно.

    Прочие вопросы

    Что такое файл подкачки?

    Файл подкачки — это специальный файл на вашем накопителе, в который система может сливать информацию с оперативной памяти, чтобы на ней освободилось место.

    Например, если у вас всего 4 ГБ памяти, операционная система в данный момент использует 2 ГБ, и вы хотите запустить игру, которой единолично требуется 3 ГБ памяти, то ОС сохраняет данные ненужных в данный момент процессов в файл подкачки, что освобождает место в оперативной памяти и дает возможность запустить ту самую игру.

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

    Даже если у вас много оперативной памяти, совсем отключать файл подкачки не рекомендуется, так как многие приложения спроектированы использовать его в любом случае. В общем, для файла подкачки можно выделить 4-8 ГБ свободного места — этого вполне достаточно.

    Что лучше — DDR3 или DDR4?

    Немного больной вопрос современного гейминга, так как DDR4 проигрывает по показателям таймингов, но имеет больший потенциал на частоты.

    В качестве примера возьмем частоту 2133 МГц — это высокое значение для DDR3 и одно из базовых для DDR4. И если стандарт JEDEC предлагает тайминги 13-13-13 для DDR3-2133, то для DDR4-2133 эти значения составляют 15-15-15, что ощутимо хуже. Получается, чтобы DDR4 начала демонстрировать превосходство над DDR3 ей нужно иметь примерно на 30 % более высокую частоту.

    Бюджетная DDR4 даже может являться причиной фризов в требовательных играх из-за высоких таймингов и, соответственно, латентности. Но выбора у нас в любом случае нет, так как DDR3 постепенно уходит в небытие, а на горизонте уже маячит DDR5.

    Нужен ли памяти радиатор или кулер?

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

    Почему мнения о важности памяти расходятся?

    Причиной тому может быть множество факторов, будь то динамическое окружение в играх или кривая сборка операционной системы ютуб блогера. Но в основном это разные конфигурации ПК, на которых проводятся тесты. Например, процессоры AMD, как правило, сильнее зависят от памяти, чем Intel. Да и разница между встроенной и дискретной графикой колоссальна. И если пользователь изначально имеет средний процессор и так себе память, то их оптимизация явно даст больший эффект, чем попытка разогнать и без того хорошую сборку. Поэтому мнения и расходятся: одни говорят, что влияние памяти нулевое, а другие получают до 30 % прироста производительности.

    Заключение

    Итак, подведем краткий итог того, что мы узнали из этой статьи.

    • Ускорение памяти не оказывает влияния на видеокарту, но может немного увеличить потенциал процессора и встроенной графики.
    • Важно иметь как минимум две планки памяти в системе для активации двухканального режима.
    • Если ваша память поддерживает XMP профили, то не забудьте их включить в биосе.
    • Память с разными характеристиками можно смешивать, но все же есть риски потерять часть производительности.
    • Двухканальная и двухранговая память — это не одно и то же. Аналогично можно сказать о частоте и пропускной способности.

    Не доверяйте информации о памяти в Диспетчере задач / Хабр

    За много лет использования Windows я привык к Диспетчеру задач. Оттуда я убил сотни приложений за плохое поведение. Там же смотрел, кто из них пожирает ресурсы. Пока я не начал работать с машинами, у которых сотни гигабайт памяти, а у приложений соответствующие запросы. В этой статье обсудим, почему Диспетчер задач плохо отслеживает память и что использовать взамен. Во-первых, о механизме выделения памяти в Windows.

    tl;dr: Диспетчер задач скрывает информацию о подкачке (paged memory) и виртуальном пространстве процесса. Лучше используйте Process Explorer из комплекта Sysinternals.


    При запуске нового процесса ОС присваивает этому процессу непрерывное адресное пространство. В 32-разрядных системах это пространство может составить 4 ГБ, обычно 2 ГБ для ядра, а остальное для процесса. В этой статье проигнорируем использование памяти ядром. В 64-разрядных системах зарезервированная процессом память может вырасти до колоссальных 64 ТБ. Что этот процесс будет делать с несколькими терабайтами памяти, когда у нас на самом деле жалкие 8 ГБ? Сначала нужно понять, что такое зарезервированная и переданная память.

    Зарезервированная и переданная память


    Не все части этого огромного адресного пространства равны. Некоторые части адресного пространства процесса фактически поддерживаются либо физической оперативной памятью, либо диском (см. ниже). Зарезервированная память считается переданной (Committed), если ОС предлагает вам эту память при попытке её использовать. Остальная часть адресного пространства, а это подавляющее большинство, остаётся доступным для резервирования. То есть не всегда ОС может предложить вам этот блок памяти для использования: она может сделать копию на диске (файл подкачки), например, а может и не сделать. В C++ резервирование памяти осуществляется вызовом VirtualAlloc. Так что переданная память является аппаратно ограниченным ресурсом в ОС. Давайте посмотрим.

    Файл подкачки ОС


    Файл подкачки — замечательная идея. В принципе, ОС понимает, что некоторые части памяти особо не используются вашим приложением. Зачем тратить на него реальную физическую память? Вместо этого процесс в ядре записывает этот неиспользуемый фрагмент на диск. Пока к нему не обратятся снова, только тогда он вернётся в память.

    Для более подробного объяснения, как работает память в Windows, рекомендую лекцию «Тайны управления памятью» Марка Руссиновича.


    Здесь много за чем нужно следить и анализировать. К кому обратиться? Конечно, к Диспетчеру задач!

    Память в RAM обычно называют рабочим набором (Working Set), в то время как всю выделенную память обычно именуют Private Bytes. Библиотеки DLL вносят путаницу в определения, поэтому пока их проигнорируем. Иначе говоря:

    Private Bytes [выделенная память] = рабочий набор + файл подкачки

    По умолчанию Диспетчер задач показывает для любого процесса именно рабочий набор:

    И это число, на которое я всё время смотрел. Откуда я знал, что в Диспетчере задач информация о переданной памяти находится в колонке Commit Size. Я так и не смог там найти информацию о виртуальной памяти.


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


    К счастью, есть много других ресурсов для отслеживания ресурсов. На каждой машине под Windows установлен PerfMon (Системный монитор), который выдаёт очень подробную информацию о каждом процессе и системе в целом:

    Интересно, что Системный монитор умеет фактически исследовать и сравнивать метрики на двух или более компьютерах в сети. Это очень мощный инструмент, но Диспетчер задач, очевидно, удобнее для пользователей. В качестве промежуточного решения рекомендую Process Explorer:

    Бум! Visual Studio, чего это ты до сих пор в 32-битном режиме (обратите внимание на его Virtual Size)? Пиковое использование памяти на моём компьютере на уровне 89% от максимума, ещё терпимо. Это пригодится позже.

    Дополнение: многие указали на другие удобные инструменты, в том числе VMMap и RAMMap.


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

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

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

    По этим причинам я ранее слышал предложение полностью удалить файл подкачки и приравнять выделенную память рабочему набору. Однако это обоюдоострая идея. Тогда ОС не в состоянии сбросить память в случае неправильной работы приложений, которые иногда впустую резервируют память.

    Что значит выделено и кэшировано памяти

    Поговорим немного о памяти, а точнее об оперативной памяти. Наиболее часто мы слышим такие понятия как выделено и кэшировано. В чем смысл этих понятий? Давайте постараемся ответить на этот вопрос.

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

    Теперь давайте разберемся, что значит кэшированная память.

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

    Таким образом, мы разобрались, что значит выделенная память и кэшированная память. Надеемся, статья была вам полезна и вы нашли ответы на свои вопросы.

    Удачи!

    Сравнение методов распределения памяти - приложения Win32

    • 2 минуты на чтение

    В этой статье

    Ниже приводится краткое сравнение различных методов распределения памяти:

    Хотя функции GlobalAlloc , LocalAlloc и HeapAlloc в конечном итоге выделяют память из одной и той же кучи, каждая из них обеспечивает несколько иной набор функций.Например, HeapAlloc можно дать указание вызвать исключение, если память не может быть выделена, а эта возможность недоступна для LocalAlloc . LocalAlloc поддерживает выделение дескрипторов, которые позволяют перемещать базовую память путем перераспределения без изменения значения дескриптора - возможность, недоступная в HeapAlloc .

    Начиная с 32-разрядной Windows, GlobalAlloc и LocalAlloc реализованы как функции оболочки, которые вызывают HeapAlloc с использованием дескриптора кучи по умолчанию для процесса.Следовательно, GlobalAlloc и LocalAlloc имеют большие накладные расходы, чем HeapAlloc .

    Поскольку разные распределители кучи обеспечивают различную функциональность за счет использования разных механизмов, вы должны освободить память с помощью правильной функции. Например, память, выделенная с помощью HeapAlloc , должна быть освобождена с помощью HeapFree , а не LocalFree или GlobalFree . Память, выделенная с помощью GlobalAlloc или LocalAlloc , должна быть запрошена, проверена и освобождена с помощью соответствующей глобальной или локальной функции.

    Функция VirtualAlloc позволяет указать дополнительные параметры для распределения памяти. Однако при его распределении используется гранулярность страниц, поэтому использование VirtualAlloc может привести к более высокому использованию памяти.

    Недостатком функции malloc является то, что она зависит от времени выполнения. Оператор new имеет тот недостаток, что он зависит от компилятора и языка.

    Функция CoTaskMemAlloc имеет то преимущество, что она хорошо работает в C, C ++ или Visual Basic.Это также единственный способ совместного использования памяти в приложении на основе COM, поскольку MIDL использует CoTaskMemAlloc и CoTaskMemFree для маршалинга памяти.

    Примеры

    Глобальные и локальные функции

    Функции кучи

    Функции виртуальной памяти

    .

    Что такое динамическое распределение памяти?

    Ресурсы всегда в цене. Мы всегда стремимся к более эффективному использованию ресурсов; это предпосылка нашего прогресса. С этим связано понятие выделения памяти.

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

    Как компьютер создает переменную?
    Когда мы думаем о создании чего-либо, мы думаем о создании чего-то с нуля, хотя на самом деле это не то, что происходит, когда компьютер создает переменную «X»; для компьютера, это больше похоже на распределение, компьютер просто назначает ячейку памяти из множества ранее существовавших ячеек памяти X.Это похоже на то, как кого-то по имени «РАДЖЕШ» выделяют в гостиничный номер из множества свободных или пустых ранее существовавших номеров. Этот пример, вероятно, очень ясно показал, как компьютер распределяет память.

    Что такое Распределение статической памяти ? Когда мы объявляем переменные, мы фактически подготавливаем все переменные, которые будут использоваться, чтобы компилятор знал, что используемая переменная на самом деле является важной частью программы, которую хочет пользователь, а не просто плавающим вокруг мошенническим символом.Итак, когда мы объявляем переменные, на самом деле компилятор распределяет эти переменные по их комнатам (см. Аналогию с гостиницей ранее). Теперь, если вы видите, что это делается до выполнения программы, вы не можете выделить переменные этим методом во время выполнения программы.

    пусто удовольствие ()

    {

    внутренний а;

    }

    внутренний основной ()

    {

    внутренний б;

    внутренний c [10]

    }

    Зачем нам нужно вводить другой метод распределения, чтобы просто выполнить свою работу? Зачем нам нужно выделять память во время выполнения программы? Потому что, хотя это и не очевидно, невозможность выделить память во время выполнения исключает гибкость и снижает эффективность использования пространства.Особенно в тех случаях, когда ввод не известен заранее, мы страдаем с точки зрения неэффективного использования хранилища и отсутствия или избытка слотов для ввода данных (с учетом массива или подобных структур данных для хранения записей). Итак, здесь мы определяем динамическое распределение памяти: Механизм, с помощью которого память / память / ячейки могут быть выделены переменным во время выполнения, называется динамическим распределением памяти (не путать с DMA). Итак, когда мы прошли через все это, мы можем сказать, что он выделяет память во время выполнения, что позволяет нам использовать столько памяти, сколько мы хотим, не беспокоясь о каких-либо потерях.



    Динамическое выделение памяти - это процесс выделения пространства памяти во время выполнения или во время выполнения.

    Причины и преимущества динамического распределения памяти:

    1. Когда мы заранее не знаем, сколько памяти потребуется программе.
    2. Когда нам нужны структуры данных без верхнего предела объема памяти.
    3. Если вы хотите более эффективно использовать место в памяти. Пример: Если вы выделили пространство памяти для одномерного массива как array [20] и в итоге используете только 10 пространств памяти, то оставшиеся 10 пространств памяти будут потрачены впустую, и эта потраченная впустую память не может быть использована другими программными переменными.
    4. Динамически созданные списки вставки и удаления могут быть выполнены очень легко, просто манипулируя адресами, тогда как в случае статически выделенной памяти вставки и удаления приводят к большему количеству перемещений и бесполезной трате памяти.
    5. Если вы хотите использовать концепцию структур и связанного списка в программировании, динамическое распределение памяти является обязательным.

    внутренний основной ()

    {

    внутренний * ptr1 = новый внутренний ;

    внутренний * ptr2 = новый внутренний [10];

    удалить ptr1;

    удалить [] ptr2;

    }

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

    внутренний основной ()

    {

    внутренний * ptr1 = новый внутренний ;

    внутренний * ptr2 = новый внутренний [10];

    удалить ptr1;

    удалить [] ptr2;

    }

    При распределении памяти в куче нам нужно удалить память вручную, поскольку память не освобождается (не освобождается) самим компилятором, даже если объем выделенной памяти заканчивается (как в случае стека).

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

    Считается одним из самых востребованных навыков в отрасли, владеет основами программирования с помощью нашего курса C ++ STL и овладевает самими концепциями путем интенсивного решения проблем.


    .

    c - Разница между распределением статической и динамической памяти

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант
    .

    Выделение системной памяти - драйверы Windows

    • 2 минуты на чтение

    В этой статье

    Драйверы могут использовать пространство, выделенное системой в своих расширениях устройств, в качестве глобальных областей хранения для информации об устройстве. Драйверы могут использовать только стек ядра для передачи небольших объемов данных своим внутренним процедурам.Некоторым драйверам приходится выделять дополнительные, большие объемы системной памяти, обычно для буферов ввода-вывода.

    Для выделения буферного пространства ввода / вывода лучше всего использовать процедуры выделения памяти: MmAllocateNonCachedMemory , MmAllocateContiguousMemorySpecifyCache , AllocateCommonBuffer (если устройство драйвера использует DMA мастера шины или системный контроллер DMA, либо режим автоинициализации контроллера DMA) ExAllocatePoolWithTag .

    Невыгружаемый пул обычно становится фрагментированным по мере работы системы, поэтому процедура драйвера DriverEntry должна вызывать эти подпрограммы для настройки любых долговременных буферов ввода-вывода, необходимых драйверу.Каждая из этих подпрограмм, за исключением ExAllocatePoolWithTag , выделяет память, которая выровнена по границе, зависящей от процессора (определяемой размером строки кэша данных процессора), для обеспечения максимальной производительности.

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

    Советы по экономному распределению буферного пространства драйвера

    Чтобы выделить буферную память ввода-вывода экономно, помните о следующем:

    • Каждый вызов MmAllocateNonCachedMemory или MmAllocateContiguousMemorySpecifyCache всегда возвращает невыгружаемую память системного пространства, кратную размеру страницы системы, независимо от размера запрошенного распределения. Следовательно, запросы меньше одной страницы округляются до полной страницы, а любые оставшиеся байты на странице теряются; они недоступны для драйвера, вызвавшего функцию, и не могут использоваться другим кодом режима ядра.

    • Каждый вызов AllocateCommonBuffer использует по крайней мере один регистр карты объекта адаптера, который отображает по крайней мере один байт и максимум одну страницу. Дополнительные сведения о регистрах карты и использовании общих буферов см. В разделе Объекты адаптера и DMA.

    Выделение памяти с помощью ExAllocatePoolWithTag

    Драйверы также могут вызвать ExAllocatePoolWithTag , указав одно из следующих системных значений POOL_TYPE для параметра PoolType :

    • PoolType = NonPagedPool для любых объектов или ресурсов, не хранящихся в расширении устройства или расширении контроллера, к которым драйвер может получить доступ, когда он работает с IRQL> APC_LEVEL.

      Для этого значения PoolType ExAllocatePoolWithTag выделяет объем памяти, который запрашивается, если указанное значение NumberOfBytes меньше или равно PAGE_SIZE. В противном случае любые оставшиеся байты на последней выделенной странице будут потрачены впустую: недоступны для вызывающей программы и непригодны для использования другим кодом режима ядра.

      Например, на x86 запрос на выделение 5 килобайт (КБ) возвращает две страницы размером 4 КБ. Последние 3 КБ второй страницы недоступны для вызывающего или другого вызывающего абонента.Чтобы избежать бесполезной траты невыгружаемого пула, драйвер должен эффективно распределять несколько страниц. В этом случае, например, драйвер может сделать два выделения, одно для PAGE_SIZE, а другое для 1 КБ, чтобы выделить в общей сложности 5 КБ.

      Примечание Начиная с Windows Vista, система автоматически добавляет дополнительную память, поэтому два выделения не нужны.

    • PoolType = PagedPool для памяти, которая всегда доступна с IRQL <= APC_LEVEL и не находится в пути записи файловой системы.

    ExAllocatePoolWithTag возвращает указатель NULL , если он не может выделить запрошенное количество байтов. Драйверы всегда должны проверять возвращаемый указатель. Если его значение NULL , подпрограмма DriverEntry (или любая другая подпрограмма драйвера, возвращающая значения NTSTATUS) должна вернуть STATUS_INSUFFICIENT_RESOURCES или обработать состояние ошибки, если это возможно.

    .

    Смотрите также