15

Люди говорят, что вам всегда нужен файл подкачки, и это повысит производительность, но моя Windows 7 настроена на работу без файла подкачки. Я просто не понимаю, почему люди так говорят - у меня 6 ГБ ОЗУ, и единственный раз, когда я почти подошел к нехватке ОЗУ, было, когда я компилировал Chromium, для которого я временно включил файл подкачки.

Мне действительно нужен файл подкачки * для повышения скорости в типичных ситуациях? Зачем?

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

5 ответов5

8

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

Если ваша ОС не особенно плохо справляется с управлением памятью, файл подкачки с 6 ГБ памяти не должен использоваться. Нельзя сказать, что это не будет иметь никакого смысла вообще; IIRC MS Windows немного сумасшедший, когда дело доходит до подкачки страниц, даже когда есть много доступной памяти. (Почему, я никогда не узнаю.)

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

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

Дело из собственного опыта. Windows XP, 4GiB, нет файла подкачки. Перф был великолепен. Пока мы не начали приближаться к пределу 4GiB. Потом все пошло не так: приложения зависали, пункты меню появлялись только частично (или не появлялись вообще), кнопки ничего не делали и т.д. Я переключился обратно на файл подкачки, хотя при этом производительность была хуже - общая стабильность была просто лучше и важнее.

Теперь, возможно, вы не используете какие-либо приложения или работаете в своих приложениях, которые бы выдвигали 6 ГБ, но я могу вспомнить несколько ситуаций, в которых вы могли бы приблизиться: редактирование видео, редактирование фотографий, микширование и производство аудио и т.д. практически все, где вы имеете дело с большим количеством данных (либо с работой, либо с потоковой передачей). Когда эти данные превысят ваши возможности памяти, велика вероятность, что ваше приложение просто "пойдет".

7

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

Я не знаю, является ли термин "кеш" правильным термином в отношении того, что делает файл подкачки. Кэш-память - это быстро доступное место временного хранения данных. Операционная система "сбрасывает" вещи в файл подкачки, когда слишком много конкуренции за физическое ОЗУ. Так что это временный промежуток для переполнения ОЗУ, чтобы предотвратить серьезные сбои программ из-за нехватки памяти. Но я верю, что Windows пытается поместить в файл подкачки вещи, к которым давно не обращались (и Linux может сделать это тоже), так что в этом смысле это кеш, но на самом деле не его основная функция.

Во всяком случае, прочитайте статью. Это даст вам хорошие рекомендации по настройке вашего файла подкачки. Как говорит @Sandeep Bansal, может быть случайная игра, которая требует, чтобы вы провели ее как часть "проверки требований" для запуска (но я не знаю ни одной).

РЕДАКТИРОВАТЬ: Этот пример может помочь вам понять роль файла подкачки:

Допустим, у вас есть 512 МБ оперативной памяти. У вас открыто несколько программ, в том числе свернутый браузер, потребляющий 250 МБ ОЗУ, а общее использование оперативной памяти всего, что работает в данный момент, составляет 500 МБ.

Итак, вы запускаете другую программу (скажем, текстовый процессор), которая хочет выделить 150 МБ ОЗУ. Недостаточно памяти. Однако, если у нас есть система подкачки страниц, страницы памяти, содержащие ваш свернутый браузер, могут быть выгружены на диск. Тогда новая программа может загрузиться.

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

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

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

2

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

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

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

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

1

Первый шаг - понять, что такое Cache, или, скорее, для чего используются разные кэши.
Центральный процессор имеет небольшой внутренний кэш, который позволяет хранить результаты OP, состояния флагов и вычисленные адреса. На двухъядерном я считаю, что внутренний кэш составляет около 1 МБ. Он очень быстрый, доступен только внутренним частям ЦП и наиболее подвержен нагреву разогнанного ЦП.

Кэш уровня 2 действует как высокоскоростной буфер для транзакций ЦП в память, а также содержит потоки кода, собранные с помощью предварительной выборки. Я полагаю, что на двухъядерной установке будет 6 Мб кеша lvl2. Он очень быстрый, хотя и медленнее, чем внутренняя кеш-память, доступен только контроллеру памяти и процессору и находится на выделенной линии на шине.

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

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

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

Стивен Мальм, MCP.

0

Личный опыт

Прямо сейчас у моего ноутбука с 8 ГБ ОЗУ есть проблемы, препятствующие созданию / использованию файла подкачки. Моя жизнь - ад. Я постоянно получаю подсказки "Недостаточно памяти", сбой приложений и т.д. Использование 3 программ, каждый из которых потребляет 1–1,5 ГБ (например, веб-браузер, Visual Studio со специальными плагинами и т.д.), Идет по тонкому льду.

Еще один аргумент

Использование данных из физической кэш-памяти очень быстро. Чем больше "свободного" физического ОЗУ у вас есть, тем больше кеш он может хранить. Чем больше неактивных данных ОС может переместить из физической памяти в файл подкачки, тем больше физической памяти будет освобождено для кэшей часто используемых данных.

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

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