Я хотел бы уменьшить размер кэша, потому что у меня медленный диск и я использую систему без подкачки (она довольно шустрая). У меня x86 Vista и 3 ГБ ОЗУ. Проблема в том, что Windows съедает около 1 ГБ ОЗУ для дискового кэша (показано в диспетчере задач в разделе Физическая память -> Кэшировано), что оставляет только 2 ГБ для приложений. Очень раздражающее всплывающее окно появляется каждый раз, когда Windows думает, что у нее мало памяти, и, конечно, приложения вылетают, когда память используется. Но в кэше все еще остается 1 ГБ!
Я попробовал AnalogX Cache Booster, но это ничего не дало, использование памяти осталось прежним, количество всплывающих предупреждений осталось на прежнем уровне.
решение1
У меня есть ... система без свопинга
Я тоже так думал. С тех пор я узнал, что в MS Windows этоплохойидея и может на самом делеповредитьпроизводительность.
Windows рассматривает RAM скорее как уровень оптимизации жесткого диска. Он не хочет ждать, пока вам придется выгрузить RAM, прежде чем подкачивать/перемещать ее на диск. Вместо этого Windows хочет, чтобы все, что вы помещаете в RAM,ужебыть выгружен/обменян.
Таким образом, когда Windows нужна оперативная память для чего-то другого, она может просто использовать ее. Эта стратегия работает, потому что она размещает (медленные) записи на диск в тех точках, когда ваш компьютер менее нагружен, за счет немного более медленной загрузки приложений и, возможно, подкачки некоторых вещей, которые ему не нужны, а не в тех точках, когда ваш компьютер уже более нагружен и у него мало оперативной памяти.
Конечно, полностью удалив файл подкачки, вы можете подумать, что получаете лучшее из обоих миров. Однако в Windows есть куча кода, который оптимизирован с учетом модели производительности, которую я только что описал. Вам действительно лучше убедиться, что у вас есть по крайней мере столько же места подкачки, сколько и оперативной памяти.
решение2
По умолчанию Vista (и более поздние версии) x86 допускает только 2 ГБвиртуальныйПамять для каждого процесса. Если одному приложению нужно больше, например 3 ГБ, вы можете увеличить это на:
bcdedit /set IncreaseUserVa 3072
Однако это будет работать только для исполняемых файлов, которые были связаны с флагом "large address aware". Процессы, запускающие другие exe, по-прежнему будут ограничены 2 ГБ.
Реальная оперативная память выделяется по мере необходимости как для приложений, так и для системы.
Поскольку это, похоже, не ваша проблема, то для оптимизации использования памяти можно сначалаОтключить SuperFetch в Windows Vista:
Служба SuperFetch в Windows Vista предварительно загружает в память вашей системы приложения, которые вы используете чаще всего. Это значительно ускоряет запуск этих приложений, но это может быть нежелательным поведением для системных настройщиков или геймеров.
Во-вторых, для управления размером кэша на диске,AnalogX CacheBooster— это бесплатный инструмент, который, как говорят, способен настраивать кэш жесткого диска (сам никогда не пробовал), но я не уверен, что он поможет, учитывая информацию ниже.
Как описано вРуководство по настройке памяти Windows Vista, параметры кэша диска находятся в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management
Некоторые важные параметры:
DisablePagingExecutiveконтролирует, как неактивные драйверы режима ядра и системный код могут быть освобождены из ОЗУ и выгружены в файл подкачки. К сожалению, у вас нет файла подкачки, поэтому системный код никогда не выгружается.
LargeSystemCacheуправляет размером кэша файловой системы следующим образом:
- 0 (по умолчанию) выделяется кэш файловой системы стандартного размера (менее 10 МБ ОЗУ)
- 1 позволяет использовать большой кэш файловой системы (до общего объема оперативной памяти минус 4 МБ!)
Если это значение равно нулю в вашем случае, то кэш диска уже настолько мал, насколько это возможно. Если полученная производительность вас не удовлетворяет, то вам следует инвестировать в оборудование: либо больше оперативной памяти, либо более быстрый жесткий диск. Увеличение оперативной памяти с 3 ГБ до 4 ГБ даст вам только увеличение (1 ГБ - видеопамяти), если только вы не перейдете на 64-разрядную версию Windows.
решение3
Каждый раз, когда Windows думает, что у нее мало памяти, появляется очень раздражающее всплывающее окно, и, конечно же, приложения аварийно завершают работу при использовании памяти.
Это всплывающее окно не имеет ничего общего с оперативной памятью и кэшем Windows. Это означает, что вы исчерпали лимит на фиксацию. Это ограничение на то, сколько частного виртуального адресного пространства могут выделить ваши процессы.
Есть три способа увеличить лимит коммита: 1) запускать меньше вещей или меньше вещей за один раз; 2) увеличить ОЗУ; 3) увеличить размер файла подкачки. Это потому, что лимит коммита — это просто размер ОЗУ плюс текущий размер файла подкачки.
Если бы вы включили файл подкачки так, как задумали разработчики ОС, вы бы не видели этих сообщений и ваши программы не вылетали бы.
И несмотря на то, что сказал CausingUnderflowsEverywhere в своем комментарии, иногда вам нужен файл подкачки, чтобы позволить программам выделять необходимую им виртуальную память,даже если есть много доступной оперативной памяти, и даже если файл подкачки фактически не используется. Почему, смотрите мои ответыздесьивведите описание ссылки здесьздесь.
Примечание: Большая часть «кэшированной» оперативной памяти, о которой сообщает диспетчер задач, по-прежнему «доступна»; кэш SuperFetch на самом деле не «использует» оперативную память. «Кэш» — это не то, что вызывает вашу проблему. Причина — отсутствие файла подкачки.