18

Есть ли способ (приложение) для контроля ОЗУ / политики использования подкачки на уровне приложения.

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

Я использую Windows 7.

4 ответа4

9

Да, есть: вызовите функцию VirtualLock :

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

Я считаю, что функция SetProcessWorkingSetSize также может быть полезна.


Для тех, кто думает, что я еретик, даже предположил, что это может быть полезно:

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


Обновление: взгляните на пункт меню Process Hacker Reduce Working Set .

5

Единственный способ, который я нашел, - отключить файл подкачки. Однако это не идеальное решение: вы будете получать сообщения об ошибках, если ваш предел ОЗУ приближается к пределу или превышает его, и он не сможет правильно сохранять аварийные дампы, поэтому включите его снова, если вам необходимо устранить неполадки. Кроме того, я использую Win7 без файла подкачки в течение нескольких месяцев без помех.

Мой опыт: у меня была эта проблема с программным обеспечением пианино (использование 1 ГБ ОЗУ), которое бросалось бы в swap после того, как некоторое время не использовалось. Воспроизведение клавиши пианино через несколько часов может привести к сбоям в работе, поскольку своп не будет перезагружен достаточно быстро для воспроизведения звука. (Я бы положил всю руку на каждый ключ, чтобы перезарядить!)

Если оперативная память является проблемой, я предлагаю вам купить больше (например, от 8 до 12 ГБ с Windows 7 x64). Для сознательного ОЗУ наличие большого количества ОЗУ - это находка.

Но прежде вам следует подумать о приобретении SSD-накопителя и установке на него свопа. Это значительно ускорит восстановление подкачки, а также предоставит множество других системных преимуществ. Оперативная память не дает преимуществ, когда она не используется.

2

Использование файла подкачки зависит от множества факторов. Если вы используете много программ и не имеете достаточно ОЗУ для всех одновременно, то некоторые из них (или все) могут быть выгружены в файл подкачки.

Если у вас 4 ГБ ОЗУ и, скажем, около 3 ГБ доступно из-за того, что видеокарты и другие пользователи ресурсов блокируют части 4 ГБ, и вы используете только несколько программ, которые не занимают много памяти, теоретически вы никогда не нужен файл подкачки. Тем не менее, Windows Vista и 7 общеизвестно агрессивны в обмене программами на диск.

Раньше у меня был параметр, который уменьшал перестановку в Windows 7 (перестановка - это термин для Linux, но он также применим и к Windows, и, поскольку существует параметр реестра, позволяющий обуздать агрессивность перестановки в Windows, кажется, что Microsoft неохотно соглашается, хотя и хорошо скрыто), но я не могу найти это больше. В поисках так я оказался здесь. Лучшая альтернатива этому параметру, которую я нашел, - это убедиться, что вы используете файл подкачки фиксированного размера (я использую 4096-4096 для 32-разрядных ОС и 12 ГБ для 64-разрядных, так как у меня 6 ГБ системной оперативной памяти). на выделенном разделе. Имея запасной диск емкостью 7200 об / мин 200 ГБ, я размещаю все свои разделы подкачки (windows XP, 7, 7 64-битные и различные Linux) на этом диске. Кажется, работает для меня, но YMMV.

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .