EDIT4 Теперь у нас есть ответ. Спасибо за всех, кто участвует в тесте, особенно Джейми. Поскольку ответ был удален, вот краткое резюме: Win10 вводит сжатие памяти, что делает этот вид тестирования трудным и частично бессмысленным. Если (на Win8 x64) вы попытаетесь отключить файл подкачки и написать тестовое приложение для выделения памяти, вы, вероятно, столкнетесь с ошибкой выделения задолго до того, как ядро будет исчерпано (Out of CC). Что Джейми сделал, так это написал приложение для выполнения миллионов небольших выделений, которые действительно успешно использовали каждый последний кусок памяти без предупреждения о нехватке памяти. Таким образом, этот механизм просто больше не существует в Win 8, если вы отключите файл подкачки, первое предупреждение, которое вы получите, это сбой.
Сбой WRT при выделении памяти "нормального размера" при наличии большого количества CC, вероятно, из-за фрагментации.
С машиной Windows 8,1 x 64 с 8 ГБ или 6 ГБ вы получаете предупреждение о нехватке памяти, если объем свободной ОЗУ падает ниже примерно 20% от общего объема системной ОЗУ (1,6 ГБ и 1,2 ГБ соответственно) И в файле подкачки больше нет места. Если доступно пространство подкачки, физическая память будет выделена подкачки для сохранения 20% или ОЗУ в резерве. Так что, если вы играете в Skyrim с большим количеством модов и получаете предупреждение о нехватке памяти, вы, вероятно, увидите, что файл подкачки полностью заполнен и доступно менее 20% ОЗУ.
Кто-нибудь пробовал, что такое предел на машине с 16 ГБ Windows? Расширяется ли он без ограничений, т.е. вы получите предупреждение о недостаточном объеме памяти в 3,2 ГБ?
Самый простой способ попробовать это полностью отключить файл подкачки или установить для него низкое значение (например, 1 ГБ), а затем запустить несколько приложений с большим объемом памяти и / или просто использовать эту маленькую утилиту: http: //www.soft.tahionic. ком / скачать-memalloc /
Я бы проверил это сам, но у меня нет доступа к ПК с 16 ГБ (или больше!) баран.
В Win8.1 фактическое использование памяти немного сложнее увидеть, так как монитор производительности не показывает использование файла подкачки. Но диспетчер задач дает вам "зафиксированное" значение, которое показывает общий объем используемой памяти (включая файл подкачки)
Редактировать: Системная информация Process Explorer, вероятно, лучше всего контролировать, как используется память. Зафиксировать заряд и лимит - это актуальный бит, если у вас нет файла подкачки, Commit limit = RAM, и вы должны получить предупреждение о нехватке памяти, когда получите ~ 81% за фиксацию.
Edit2: чтобы сделать его еще более однозначным, вот псевдокод для двух случаев, о которых я спрашиваю
Вариант A Нет предела тому, насколько велика минимальная свободная память (доступная плата за фиксацию), прежде чем выдается предупреждение:
if (CC/CL) > 0.8 then print "low memory warning"
Случай B Минимальная свободная память (доступная плата за фиксацию) ограничена некоторым абсолютным значением, и перед ее пересечением предупреждение не выдается:
if (CC/CL) > 0.8 and if (CL-CC) < 2048MB then print "low memory warning"
Edit3: оказывается, Windows 10 сжимает память, когда она работает достаточно мало на реальной оперативной памяти. Это, естественно, затрудняет выполнение этого теста. Вы все еще можете исчерпать доступную оперативную память, но окна будут сжимать malloc с нулевыми значениями довольно эффективно. В Win8.1 x64 и более ранних версиях это простая задача.
Обновить
В настоящее время у меня есть несчастье, чтобы использовать 4GB Windows 7 x64 box. В этой системе Windows пытается сохранить ~ 800 МБ доступной физической памяти. Это, конечно, знакомый срез 20%. И это намного хуже, чем "резерв" на 1,6 ГБ на коробке с 8 ГБ.
Я вижу, что модератор удалил мой ответ, где я резюмировал выводы Джейми, используя специальную программу, написанную для исчерпания ядра. Спасибо за это.