[Перевод] 24-ядерный CPU, а я не могу набрать электронное письмо (часть 2)
|
|
Пятница, 24 Августа 2018 г. 16:18
+ в цитатник
В
прошлой статье я обещал подробнее раскрыть некоторые детали, которые опустил во время расследования [подвисаний Gmail в Chrome под Windows — прим. пер.], включая таблицы страниц, блокировки, WMI и ошибку vmmap. Сейчас восполняю эти пробелы вместе с обновлёнными примерами кода. Но сначала вкратце изложим суть.
Речь шла о том, что процесс с поддержкой
Control Flow Guard (CFG) выделяет исполняемую память, одновременно выделяя память CFG, которую Windows никогда не освобождает. Поэтому если вы продолжаете выделять и освобождать исполняемую память
по разным адресам, то процесс накапливает произвольный объём памяти CFG. Браузер Chrome делает это, что приводит к практически неограниченной утечке памяти и подвисаниям на некоторых машинах.
Нужно заметить, что подвисаний трудно избежать, если VirtualAlloc начинает работать более чем в миллион раз медленнее, чем обычно.
Читать дальше -> https://habr.com/post/421153/?utm_source=habrahabr&utm_medium=rss&utm_campaign=421153
Метки:
Системное программирование
Разработка под Windows
блок управления памятью
MMU
таблицы страниц
Control Flow Guard
CFG
VirtualScan
vmmap
блокировки
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-