我现在正在分析一个执行大量磁盘I / O的应用程序。
此时,我想知道在磁盘I / O上花了多少时间。因此,我可以对I / O和整个执行时间进行比较,以便确定下一个优化目标。
简而言之,我正在寻找工具或方法:
我无法控制执行磁盘I / O操作的组件。所以我无法在我的应用程序中添加分析代码来手动记录I / O时间。
我尝试过Xcode Instruments的time profiler
。但它太重了。我只想要I / O操作的摘要时间。
由于
答案 0 :(得分:2)
在Windows上使用XPerf告诉您有关文件I / O次数的极其详细的信息。你也可以用这个来获得堆栈跟踪 - 有一个很棒的PDC09视频,使用了Michael Milrud的XPerf。
答案 1 :(得分:0)
我曾经在Win32下为ReadFile / WriteFile写了一些简单的钩子。您只需从main调用init()
函数,即可拦截整个过程中的调用。
我只是不知道如何发布它们,因为它们非常大。