Трассировка ввода-вывода для каждого файла (скорость чтения и записи в байтах в секунду) с использованием Windows API - PullRequest
0 голосов
/ 11 июня 2019

Можно ли отследить общее количество байтов, прочитанных и записанных в файл pagefile.sys? Идея состоит в том, чтобы отобразить график активности подкачки с течением времени и определить узкие места в памяти.

Я смотрел на FileSystemWatcher , но, похоже, он уведомляет только об измененных событиях, но не о байтах, прочитанных / записанных.

Я думаю, что должен быть API, позволяющий это сделать, поскольку Resource Monitor может это сделать (см. Первое изображение) .

EDIT

Как указано в приведенной выше ссылке: «Счетчики производительности \ Memory \ Page / sec, \ Memory \ Page Reads / sec и \ Memory \ Page Inputs / sec измеряют жесткие сбои страниц (сбои, которые должны устраняться диском) может или не может иметь отношение к файлу страницы или состоянию физической памяти. Сбои на жестких страницах являются обычной функцией операционной системы и возникают при чтении частей файлов изображений (DLL и EXE) по мере необходимости, при чтении файлов с отображенной памятью или при чтении из файла подкачки ".

Следовательно, для этой задачи недостаточно счетчиков производительности. Мне нужно обнаруживать реальную активность файла подкачки, а не "нормальные" серьезные сбои.

1 Ответ

0 голосов
/ 11 июня 2019

Да, есть способ запросить информацию, которую вы ищете. Он называется счетчиком производительности в окнах, и существует широкий набор API-интерфейсов для потребителя и производителя счетчиков производительности. Поскольку вы хотите использовать счетчик производительности, вы должны смотреть на потребительские API. Следующие ссылки помогут вам получить необходимую информацию.

...