1

我无法计算 cygwin 中 cpu 处理的时间?这是为什么呢?我需要一个特殊的命令吗?计算 cpu 中的点击次数是由包含 time.h 后的时钟功能完成的!

不过,在我在 Visual Studio 中完成之后,我就无法在 cygwin 上运行?这是为什么!

这是代码。

#include <iostream>
#include <time.h>
using namespace std;
int main()
{

    clock_t t1,t2;

    int x=0;
    int num;
    cout << "0 to get out of program, else, number of iterations" << endl;
    cin>>num;

    if(num==0)
    system(0);
    t1=clock();
    while (x!=num)
        {
        cout << "Number "<<x<<" e"<< endl;
        if(x%2==0)
            cout << "Even" << endl;
        else
            cout << "Odd" << endl;
        x=x+1;
        }


    t2=clock();
    float diff ((float)t2-(float)t1);
    cout<<diff<<endl;
    float seconds = diff / CLOCKS_PER_SEC;
    cout<<seconds<<endl;
    system ("pause");
    return 0;
}

抱歉英语不好。

4

1 回答 1

2

看起来 clock() 函数对于 Windows 和 POSIX(以及因此 Cygwin)的定义不同。MSDN 说 Windows clock() 返回“自进程启动以来经过的挂钟时间”,而 POSIX 版本返回“实现对进程使用的处理器时间的最佳近似值”。在您的示例中,该过程将花费几乎全部时间等待终端的输出完成,这不计入处理时间。

于 2013-04-19T19:50:42.653 回答