Как узнать общее время, которое приложение тратит на чтение / запись из / в файловую систему? - PullRequest
1 голос
/ 29 сентября 2010

Я сейчас профилирую приложение, которое выполняет много операций ввода-вывода на диске.

На данный момент я хочу знать, сколько времени тратится на дисковый ввод-вывод. Таким образом, я мог бы сравнить между вводом / выводом и всем временем выполнения, чтобы определить следующую цель оптимизации.

Короче, я ищу инструменты или методы для:

  1. Рассчитайте и суммируйте общее время операций дискового ввода-вывода моего приложения.
  2. Трассировка стека не обязательна, но полезна
  3. Работает в Windows или OSX.

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

Я попробовал time profiler от Xcode Instruments. Но это слишком тяжело. Мне просто нужно общее время выполнения операций ввода-вывода.

Спасибо

Ответы [ 2 ]

2 голосов
/ 30 сентября 2010

Используйте XPerf в Windows, чтобы подробно рассказать вам о временах ввода-вывода файлов. Вы также можете получить трассировку стека - есть отличное видео PDC09 об использовании XPerf от Michael Milrud.

0 голосов
/ 29 сентября 2010

Я однажды написал несколько простых хуков для ReadFile / WriteFile под Win32.Вам просто нужно вызвать функцию init() из основного режима, и вызовы всего процесса будут перехвачены.Я просто не знаю, как их опубликовать, потому что они довольно большие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...