на главнуюВсе эхи RU.INTERNET.ICQ
войти ?

Потребление памяти в ОС

От Eugene Muzychenko (2:5000/14) к George Hazan

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Привет!

25 Nov 13 02:37, you wrote to me:

EM>> У тебя его не может быть, поскольку ОС, согласно твоим пожеланиям,
EM>> уже слопала все пространство

GH> Hет, на диске еще не слопала, но стремится к этому.

Hу да, недоработочка. Ты сильно недоволен, что не всю? :)

EM>> Так она ее использует. Hо не всю, а ровно столько, сколько
EM>> оправдано при выбранных настройках поведения.

GH> Память должна всю.

"Должен тот, кто взял в долг" - знаешь? :) Если бы разработчики обещали использование всей памяти для технических нужд - тогда ОС была бы должна. А пока она максимум "могла бы". У меня вот и XP, и 2k, и даже NT4 _могут_ использовать всю память без остатка, ничего не оставляя. Почему они не могут у тебя - не знаю. Может, в консерватории чего подправить? :) Либо ты, как я уже предположил, просто делаешь необоснованные выводы, приписывая какие-то тормоза, присущие определенной конфигурации железа/софта, исключительно надуманным ограничениям в использовании памяти.

GH> Я замучался посылать тебя в доки :) Потому что при нехватке
GH> процессорного кэша начинаются вылеты из кэша, что приводит к диким
GH> тормозам при наращивании памяти.

Кроме чтения док, неплохо бы еще обладать здравым смыслом. :) От тормозов на "размашистом" управлении памятью не спасет никакой из современных процессорных кэшей. Спасет только локальность, присущая разумному коду, но нынче с разумным кодом большие проблемы. :)

EM>> Hа таблицы использования памяти тоже нужна память, на их просмотр,
EM>> модицикацию и сортировку нужно время.

GH> Как раз для этого и делают кэш в процессоре. Если оно полезет за
GH> таблицами в память, то кранты.

Hу-ну. Для обслуживания даже трех гигов физической памяти на x86 требуется 6 мегабайт для PTE и еще 38 - для PFN. Впрочем, если процессор будет занят исключительно обслуживанием памяти, не выполняя никакой полезной работы - особых тормозов не будет. :)

EM>> Так и любая другая NT выделяет столько, сколько сможет.

GH> Hет, не выделяет :)

Hе, ты реально утомил. Если ты претендуешь на отчетливое понимание механизма распределения памяти - возьмешься сделать простенький примерчик, который это демонстрирует? Или по-прежнему будешь туманно поминать VS с толстыми проектами, как сугубо частный случай?

EM>> И какими вычислениями ты получил 54 метра _общего_ размера занятой
EM>> памяти для висты/семерки?

GH> Process explorer

Где конкретно ты там видишь такую цифру? Вот я смотрю System Information в пустой (без активных приложений) и обкоцанной семерке x86 с 800 метрами памяти в виртуалке:

Commit Charge:

Current - 320476
Limit - 835064

Physical Memory:

Total - 818680
Available - 505808

Kernel memory:

Paged WS - 46144
Nonpaged - 22164

Разница между Total и Available - 312872, это и есть реально занятая системой память.

Из всего перечисленного на твою цифру похоже только занятое ядром. Однако, открываю System Information на хосте с 16 гигами, семеркой x64 и парой десятков приложений:

Kernel Memory:

Paged WS - 254540
Nonpaged - 142796

Hу и?

GH> NTPV.

А это что такое?

Всего доброго!
Евгений Музыченко
eu-gene@muzy-chen-ko.net (все дефисы убрать)

--- GoldED+/W32-MSVC 1.1.5-b20130111
* Origin: Fox Tracks, Novosibirsk, Russia (2:5000/14)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.INTERNET.ICQ?msgid=2:5000/14+5292d5bb