MacCentre
Форум: Mac и Mac OS X
Тема: Виртуальная память
Страницы: 1 [2]

[Ответить]
Corax [11.04.2007 08:30] :
Да в общем-то действительно вопрос немного о другом был - почему мелкие программы (и не только виджеты) требуют такое количество виртуальной памяти - тот же адиум 350-400 мегабайт. Причем это на интеле, а на ППЦ они забирают раза в 3-4 меньше.
P.S. Честно говоря в десятке я уже давно сижу (с 10.1) но как-то ни разу не задумывался раньше :-)
Korwin [11.04.2007 08:49] :

Это был я :)

в UNIX память используется несколько иначе, чем в Windows (это, наверное все заметили :)
Виртуальная память это не своп, а общий объем программы и библиотек которые она использует, а также сюда приплюсовывается используемая видеопамять (должна). Поэтому эти числа у всех большие, но пугаться их не стоит.
UNIX грузит библиотеки в память по надобности и без особой надобности их (библиотеки) не выгружает даже когда они не нужны. Поэтому можно видеть в системе, что свободной памяти очень мало - всегда занята.
паша кошляк [11.04.2007 09:07] :
розетта?
Korwin [11.04.2007 09:08] :
розетта?

Собственно это можно посмотреть там же где и размер виртуальной памяти. К примеру MS Office 2004, ruSpell работают в режиме PowerPC.
Corax [11.04.2007 09:28] :
Ну адиум- то универсальный!!! ППЦ у меня там в списке всего штуки 3 было (хотя индизайн ЦС2 себе сразу 2,5 гига отхватил, но ему-то можно :-)))
Сергей Криворуков [11.04.2007 09:29] :
А как это, теоретически, сказывается на сравнительной производительности систем ?
Korwin [11.04.2007 09:43] :
Такой подход дает более мягкую (равномерную) нагрузку.
Как в Mac OS X точно не знаю, не вникал, но в ряде других UNIX перед выгрузкой библиотек из памяти они помещаются в своп и только потом, если еще некоторое время не используются удаляются полностью.

Поднятие дампа библиотеки из свопа более быстрая операция, чем загрузка библиотеки с нуля (холодный старт).

Лично меня в Windows (как разработчика ПО) бесит то, что винда насильно начинает пихать приложения в своп даже когда еще 2Гига оперативки свободно. Как в Vista не знаю, еще не смотрел, но во всех предыдущих Microsoft OS память больше 1Gb используется крайне бездарно.
Сергей Криворуков [11.04.2007 09:46] :
А как память используется в юниксах? (насколько я понял, винда использует своп, как замену оперативной памяти, оттуда резкое снижение быстродействия?)
Korwin [11.04.2007 10:15] :
Линки на англоязычные статьи принимаете? Если нет, то плохо. Где есть переводные статьи не в курсе.

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

В Windows механизм работы с памятью заточен на до 1Gb и на агрессивную выгрузку неактивных библиотек и ПО (без различия) в своп.
Поэтому если на машине 3Gb и занят 1Gb, то дальше неактивные приложения уходят в своп несмотря на свободные 2Gb.
Если же своп отключить, то ОС создаст сама своп и будет в него класть. Без свопа жить совсем не может.
Сергей Криворуков [11.04.2007 10:44] :
Спасибо, Korwin!
[Ответить]
[< Назад]