我目前正在从事一个项目,我们的目标之一是减少从磁盘读取的数据总量。有没有办法确定进程运行的字节总数?我正在使用 Visual Studio 2005 构建的 C++ 应用程序,在 Windows XP 上运行。
理想情况下,如果我指定进程名称,我想要某种可以打印结果的监视器。但是,如果有某种 API 可以在我自己的应用程序中使用,那也很好。
我知道这一定是可能的,因为我可以在进程运行时显示任务管理器中读取的字节总数,我希望能够为已经完成的进程获取这个数字。
最佳答案
您可以使用 GetProcessIOCounters功能。这将返回总读取操作、写入操作、其他、读取字节、写入字节和其他字节。这个过程仍然需要活着才能工作——持有这个过程的句柄就足够了。或者,您的进程可以在退出时记录此信息。
如果您的目标是减少磁盘 I/O,我建议您使用 Windows Performance Toolkit .这将向您显示您正在从哪些文件读取最多数据,哪些线程正在读取最多数据,并帮助您提供更多的系统范围 View ,以防您在系统其他地方引起磁盘 I/O .
关于c++ - 确定进程读取的字节总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1364144/