【问题标题】:Getting CPU time spent on process vs. World time spent on process problem c++获取进程花费的 CPU 时间与进程问题 c++ 花费的世界时间
【发布时间】:2011-02-07 20:24:25
【问题描述】:

我正在使用两种不同的方法来获取时钟()和 getLocalTime(),因为我想要在我的进程上花费的 CPU 时间和在这个进程上花费的挂钟时间。目前我这样做:

printf("CPU Time: %gms \n", (((double)(finish-start)) / CLOCKS_PER_SEC)*1000.0);
printf("Clock Time: %ldms \n", (end.sec-begin.sec)*1000+(end.msec-begin.msec));

但他们都给了我相同的确切结果! (在运行约 30 秒的东西上),我知道 CPU 并没有在进程上花费那么多时间。我是否使用了正确的功能?谢谢。

【问题讨论】:

    标签: c++ time cpu-time


    【解决方案1】:

    在 Unix 系统上,可以通过 getrusage() 获取 CPU 时间。

    【讨论】:

    • 现在我在 Windows 上,它在 Linux 上运行良好,我不知道为什么它不合作。
    【解决方案2】:

    没有真正的跨平台,但在 Windows 上有两种可能性:

    我自己没用过,但我相信两者都会给出相同的结果

    【讨论】:

      【解决方案3】:

      clock() 不是便携式经过时间的正确工具。在 windows 下,它被定义为返回经过的挂墙时间,在 unix 类型的系统上,它返回经过的处理器时间。

      我确定必须是一个可移植的解决方案,但我不知道该去哪里找。我会通过提升来寻找开始。

      【讨论】:

        猜你喜欢
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-30
        • 2014-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多