Показать сообщение отдельно
Старый 09.05.2011, 20:19   #73
k0st2
Новичок
 
Пол:Мужской
Регистрация: 12.12.2010
Сообщений: 10
Репутация: 8
По умолчанию Re: Windows 7 x32 и x64 - проблемы с оперативой

Dmitry, я все же считаю вы не правы, по крайней мере для систем NT 6.x - vista, win7
Хотя бы потому, что ядро у 2008 и vista и 2008R2 и win7 - одно и то же
и если оно увидело память и рапортует всем прогам ее,включая task manager, то значит оно ее _использует_

в доказательство привожу свой эксперимент

пишем элементарную программу на C :

#define SZMALLOC (1024*1024*1024)

int _tmain(int argc, _TCHAR* argv[])
{
void *p;
p = LocalAlloc(LMEM_FIXED,SZMALLOC);
if (p) {
printf("alloc ok\n");
memset(p,0xAA,SZMALLOC);
printf("memset ok\n");
_getch();
LocalFree(p);
} else {
printf("alloc error\n");
_getch();
};
}


1 запущенная прога алочит гиг памяти, заполняет его значением AA и ждет нажатия кнопки.
это значит, что память точно выделена и активна. если бы что-то было не так, то прога бы вылетела с ошибкой

далее отключаем пейджфайл. ребутимся. проверям, что памяти доступно 5G
запускаем 4 экземпляра проги. это уже гарантированно отъедает более 4 гигов + еще сама система кушает память

смотрим в task manager. видим там memory usage 4.45G

чем не доказательство ?

Добавлено через 4 минуты
Дополнение к мому способу модификации ProductPolicy

Надо менять 2 параметра :

(AA4) Kernel-WindowsMaxMemAllowedx86
(72C) Kernel-MaxPhysicalPage

тогда все работает

но приходится отключать sppsvc, иначе он все восстанавливает взад, причем это делает не через RegSetValueEx, а через какой-то специальный вызов ядра. уже ядро дальше меняет значения, а user mode программам его не поменять
k0st2 вне форума
 
Вверх
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение:
 
Время генерации страницы 0.08571 секунды с 9 запросами