@
𝕵𝖔𝖍𝖆𝖓 ⛧ потому что он просто запинил страницы.
ну... если коротко, небольшой экскурс в системную разработку.
приложение может сказать системе выдели мне оперативной памяти столько то гигов (это не heap, а именно обращение к подсистеме virtual memory). и операционная система конечно выделит, но лишь внутри виртуального адресного пространства данного процесса (приложения). не обеспечив этот запрошенный кусок реальными страницами физической ОЗУ.
ну ты же понимаешь, что есть виртуальные адреса в том, что является виртуальным адресным пространством процессов, а есть реальные, физические, адреса страниц в ОЗУ. и соответствие между ними идёт через таблицу трансляции.
приложения обычно ограничивают тем, что просят ОС выделить память 9Гб и не требуют при этом распределить (выделить) реальные страницы ОЗУ. но могут и такое попросить — для того, чтобы при обращении к 7-му гигабайту их 9 гигового кэша в адресном пространстве всё работало быстро. а не приходилось ждать, пока ОС найдёт реальные страницы ОЗУ и не сопоставит их тому виртуальному адресу куда пришлось обращение приложения.
такой херовый сценарий называется soft page fault — это генерация исключения аппаратного на процессоре, когда приложение обращается к тем адресам виртуальной памяти в пространстве своего процесса, если эти адреса не сопоставлены реальным страницам ОЗУ и надо выполнить это сопоставление вытащив из пула свободные страницы ОЗУ.
этот херовый сценарий жрёт до 30% производительности приложения от всей работы с оперативной памятью.
потому все люди делающие серьёзный софт — все не просто выделяют память запросом к системе, а ещё и говорят системе произвести маппинг реальных страниц ОЗУ (запинивают память).
@johan так не, все так, так и задумывалось