Виртуальная память все еще релевантна в современном мире недорогой RAM? [закрытый]

В MS Access более чем один JOIN требует парных скобок:

SELECT d.departmentID, d.depName, d.location, c1.memberID, 
       c1.fullName,  c1.reportsTo, c2.fullName
FROM (Contacts as c1
INNER JOIN Departments as d
   ON c1.departmentID = d.departmentID)
INNER JOIN Contacts as c2
   ON c1.reprtsTo = c2.memberID
15
задан casperOne 5 April 2012 в 13:58
поделиться

10 ответов

Вопрос действительно, что является использованием файла подкачки, рассматривающего, сколько имеют современные компьютеры памяти и что продолжается под капотом в ОС.

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

В течение нескольких дней теперь я использовал очень небольшой файл подкачки (зафиксированных 200 МБ) в Vista с 3 ГБ адресуемой физической памяти. У меня не было катастрофических отказов или проблем. Не попробовали вещи как большое редактирование видео или много различных процессов, открытых сразу. Я не рекомендовал бы файла подкачки, так как ОС никогда не может переставлять страницы вокруг в продвижении физической памяти к разработке дыр. Большой файл подкачки отказоустойчив для людей, которые не знали бы, как вручную увеличить файл подкачки, если низкая память, предупреждающая, открывается или катастрофические отказы ОС.

Некоторые точки: ядро будет использовать часть физической памяти, и это будет совместно использовано через VM, отображающийся со всеми другими процессами. Другие процессы будут в остающейся физической памяти. VM заставляет каждый процесс видеть 4 ГБ пространства мадам, ОС на уровне более низких 2 ГБ. Для каждого процесса будет нужно намного меньше, чем 4 ГБ физической памяти, эта сумма, это фиксировало требование к памяти. При программировании malloc или новый будет резервировать память, но не фиксировать ее. Вещи как первая запись к памяти будут фиксировать его. Некоторая память сразу фиксируется ОС для каждого процесса.

5
ответ дан 1 December 2019 в 00:27
поделиться

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

Таким образом к Вашему вопросу о вводе: да, виртуальная память требуется. Это - то, что делает работу современной ОС.

16
ответ дан 1 December 2019 в 00:27
поделиться

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

Да, виртуальная память жизненно важна. Файл подкачки, возможно, нет.

4
ответ дан 1 December 2019 в 00:27
поделиться

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

12
ответ дан 1 December 2019 в 00:27
поделиться

Да, потому что это - основание всей подкачки страниц по запросу, которая происходит в современной операционной системе, не просто Windows.

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

6
ответ дан 1 December 2019 в 00:27
поделиться

Grrr. Дисковое пространство, вероятно, всегда будет более дешевым, чем RAM. Один из моих компьютеров лаборатории имеет 512 МБ RAM. Это раньше было достаточно, когда я получил его, но теперь это замедлилось к свопингу проверки, и я должен поместить больше RAM в него. Я не запускаю больше программ теперь, чем я был затем, но они все стали более чрезмерно увеличенными в размерах, и они часто порождают больше программ "демона", которые просто находятся, там делая, только ожидают некоторого события и израсходовали память. Я смотрю на свой список процессов, и колонна "в оперативной памяти" для файлового менеджера составляет 40 МБ. Для Firefox это - 162 МБ. "Планировщик обновления Java" jusched.exe использование еще 3.6 МБ. И это - просто физическая память, эти числа не включают область подкачки.

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

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

2
ответ дан 1 December 2019 в 00:27
поделиться

Хорошее объяснение по http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Для оптимальной калибровки страничного файла, необходимо запустить все приложения, которые Вы запускаете одновременно, загружаете типичные наборы данных и затем отмечаете пик заряда фиксации (или смотрят это значение после промежутка времени, где Вы знайте, что максимальная нагрузка была достигнута). Установите минимум страничного файла, чтобы быть, что значение минус сумма RAM в Вашей системе (если величина отрицательна, выберите минимальный размер для разрешения вида дампа катастрофического отказа, Вы настроены для). Если Вы хотите иметь некоторое место дыхания для потенциально больших требований фиксации, установите максимум для удвоения того числа.

1
ответ дан 1 December 2019 в 00:27
поделиться

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

Плюс, как указано выше, 2 ГБ не действительно достаточно для рассмотрения выключения его. Heck, я, вероятно, не выключил бы его, пока у меня не было 8 ГБ или больше.

G-человек

0
ответ дан 1 December 2019 в 00:27
поделиться

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

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

Виртуальная память используется в больших системах уже около 40 лет и в ближайшее время не исчезнет. Преимущества слишком велики. Если бы виртуальная память была исключена, все текущие 32-битные приложения (а также 64-битные) устарели.

Ларри Миллер Microsoft MCSA

1
ответ дан 1 December 2019 в 00:27
поделиться

Поскольку доступ к диску не будет, если он отключен, и все программы будут резидентными в памяти, не улучшит ли это производительность и время отклика программ?

Я не совсем уверен о других платформах, но у меня была машина с Linux, где пространство подкачки было случайно отключено. Когда процесс использовал всю доступную память, машина в основном зависала на 5 минут, средняя загрузка доходила до абсурдных цифр, и ядро ​​ OOM killer запускалось и завершало несколько процессов. Повторное включение свопа полностью устранило это.

Я никогда не сталкивался с ненужной заменой на диск - это происходило только тогда, когда я использовал всю доступную память. Современные ОС (даже дистрибутивы Linux 5-10 летней давности) довольно разумно работают с пространством подкачки и используют его только при необходимости.

Вероятно, вы можете обойтись без пространства подкачки, поскольку достичь 4 ГБ памяти одним процессом довольно редко. С 64-битной ОС и, скажем, с 8 ГБ ОЗУ это еще реже ... но на самом деле нет смысла отключать пространство подкачки, вы не выиграете много (если что-нибудь), и когда у вас закончится физическая память без него, случаются плохие вещи ...

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

случаются плохие вещи ...

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

случаются плохие вещи ...

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

0
ответ дан 1 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: