2011-04-05 24 views
3

隨着xperf我可以生成一個跟蹤和獲取所有文件的 「扁平化」 上市閱讀像這樣:列出使用xperf訪問每個進程的文件?

xperf -on FileIO專注+ FILE_IO + FILE_IO_INIT +文件名-stackwalk FILEREAD + FILEWRITE + FileDelete

xperf - 啓動FileIOSession -heap -PidNewProcess 「C:\ Python27 \ 86 \ python.exe scratchy.py」 -WaitForNewProcess -buffersize 1024 -MinBuffers 128 -MaxBuffers 512 -stackwalk HeapAlloc + HeapReAlloc的-f ./tempheap.etl

xperf - 停止FileIOSession -stop -d fileio.etl

xperf -i fileio.etl -o fio_outp ut.txt -a文件名

不幸的是,fio_output.txt文件包含了每個可以被訪問的文件的列表(來自我的Web瀏覽器,IDE等)。更令人沮喪的是,如果我手動打開xperfview並打開文件I/O總結表,我可以看到我的進程(本例中是python.exe)和它讀取的一個文件(用於測試目的),但似乎無法找到在CLI上輸出相同數據的方式就是我所需要的 - 無人值守的自動生成文件訪問信息的方法。

回答

0

我懷疑你可以從tracerpt.exe出得到這個數據,而不是 - 我給一個嘗試

+0

我不明白它是如何幫助僅從一個進程(和它的子進程)跟蹤I/O的問題。 – Zadan 2013-08-08 04:03:26

+0

如果您可以通過tracerpt.exe將數據轉儲爲CSV,那麼在PID上進行簡單處理就很簡單了。 – 2013-08-08 08:47:29

+0

tracerpt也有同樣的問題 - 我可以指定一個提供者,但是在很短的時間內,我會淹死在數據中。我需要能夠在數據到達磁盤之前進行過濾,否則我將從字面上耗盡磁盤空間。我的用例是用於監視在構建期間完成的讀/寫I/O,該構建可以持續2個小時。而且我的虛擬機並沒有TB的可用空間。 – Zadan 2013-08-10 05:03:14

1

如果你想查看這些數據,那麼你應該跟蹤加載到WPA,打開文件I/O表,並適當安排列。既然你想按流程分組,你應該首先有流程欄,然後是橙色欄,然後是你想要的任何數據欄。

如果要導出數據以編程方式解析它,則應使用wpaexporter.exe,這是WPT 8.1中的新增功能。看到我寫的博客文章描述瞭如何執行此操作: https://randomascii.wordpress.com/2013/11/04/exporting-arbitrary-data-from-xperf-etl-files/ 使用wpaexporter可以讓您準確地確定要導出哪些數據列,而不是受xperf.exe爲您提供的有限的一組跟蹤處理操作的限制。

相關問題