我目前正在开发一个项目,其中一个目标是减少从磁盘读取的数据总量。有没有办法确定进程运行的总字节数?我正在使用在Windows XP上运行的Visual Studio 2005构建的C++应用程序。确定进程读取的总字节数
理想情况下,如果指定进程名称,我想要某种可以打印结果的监视器。但是,如果某种API可以在我自己的应用程序中使用,那也可以。
我知道这一定是可能的,因为我可以显示任务管理器在进程运行时读取的总字节数,我希望能够为已经完成的进程获取这个数字。
我目前正在开发一个项目,其中一个目标是减少从磁盘读取的数据总量。有没有办法确定进程运行的总字节数?我正在使用在Windows XP上运行的Visual Studio 2005构建的C++应用程序。确定进程读取的总字节数
理想情况下,如果指定进程名称,我想要某种可以打印结果的监视器。但是,如果某种API可以在我自己的应用程序中使用,那也可以。
我知道这一定是可能的,因为我可以显示任务管理器在进程运行时读取的总字节数,我希望能够为已经完成的进程获取这个数字。
您可以使用GetProcessIOCounters函数。这将返回总读取操作,写入操作,其他读取字节,写入字节和其他字节。这个过程仍然需要活着才能发挥作用 - 掌握过程应该足够了。或者,您的流程可以在退出时记录此信息。
如果您的目标是减少磁盘I/O,我建议您使用Windows Performance Toolkit。这将向您显示您正在读取大部分数据的哪些文件,哪些线程正在读取大部分数据,并且还会帮助您获得更多的系统范围视图,以防您在系统中的其他位置导致磁盘I/O 。
Windows性能工具包看起来不错,不幸的是,它需要Windows Vista,而我仍然在XP – Moe 2009-09-01 19:37:50