Я пытаюсь использовать perfmon, и согласно MSDN, счетчик «Всего байтов системного кода» ...
Показывает размер в байтах кода операционной системы, доступной для страницы, в настоящее время находящейся в виртуальной памяти. Это мера объема физической памяти, используемой операционной системой, которая может быть записана на диск, когда она не используется. Это значение вычисляется путем сложения байтов в Ntoskrnl.exe, Hal.dll, драйверах загрузки и файловых системах, загружаемых Ntldr / osloader. Этот счетчик не включает код, который должен оставаться в физической памяти и не может быть записан на диск.
Но разве это не противоречие? В нем говорится, что это «размер виртуальной памяти», а в следующем предложении говорится, что это «объем используемой физической памяти». Насколько я понимаю, тот факт, что виртуальная память существует, не означает, что с ней сопоставлена физическая память, потому что память может быть выгружена в файл подкачки на диске, когда не хватает физической памяти. поэтому размер виртуальной памяти и размер физической памяти сильно различаются.
еще одна вещь, которая меня смущает, - это то, что «значение рассчитывается путем добавления байтов в Ntoskrnl.exe, Hal.dll, загрузочных драйверах и файловых системах, загружаемых Ntldr / osloader». Так не будет ли это число постоянным независимо от того, сколько из этих файлов загружено в виртуальную / физическую память?
Может кто-нибудь помочь мне понять, что означает этот счетчик?
Вероятно, это опечатка, поскольку соответствующий счетчик «Резидентные байты системного кода» включает описание «Показывает размер в байтах кода операционной системы, находящегося в настоящее время в физической памяти, который может быть записан на диск, когда он не используется». Далее поясняется, что «Это значение является компонентом общего числа байтов памяти \ системного кода, который также включает код операционной системы на диске».
Таким образом, «Общее количество байтов системного кода» - это общее количество байтов в виртуальной памяти, которое включает как резидентную (в физической памяти), так и нерезидентную (на диске).
Относительно второго вопроса: значение «Всего байтов системного кода» действительно может быть довольно постоянным, а «Резидентные байты системного кода» - нет. Общее количество байтов помогает вычислить процент резидентных / нерезидентных байтов.