如何获取应用程序花在读/写文件系统上的总时间?

时间:2010-09-29 02:18:10

标签: windows macos file optimization profiling

我现在正在分析一个执行大量磁盘I / O的应用程序。

此时,我想知道在磁盘I / O上花了多少时间。因此,我可以对I / O和整个执行时间进行比较,以便确定下一个优化目标。

简而言之,我正在寻找工具或方法:

  1. 计算并汇总应用程序的磁盘I / O操作的总时间。
  2. 堆栈跟踪不是强制性的,但很有用
  3. 适用于Windows或OSX。
  4. 我无法控制执行磁盘I / O操作的组件。所以我无法在我的应用程序中添加分析代码来手动记录I / O时间。

    我尝试过Xcode Instruments的time profiler。但它太重了。我只想要I / O操作的摘要时间。

    由于

2 个答案:

答案 0 :(得分:2)

在Windows上使用XPerf告诉您有关文件I / O次数的极其详细的信息。你也可以用这个来获得堆栈跟踪 - 有一个很棒的PDC09视频,使用了Michael Milrud的XPerf。

答案 1 :(得分:0)

我曾经在Win32下为ReadFile / WriteFile写了一些简单的钩子。您只需从main调用init()函数,即可拦截整个过程中的调用。 我只是不知道如何发布它们,因为它们非常大。