gpt4 book ai didi

c++ - 如何使用 C++ 测量 Mac OS 上多线程程序的时间成本?

转载 作者:搜寻专家 更新时间:2023-10-31 00:32:06 27 4
gpt4 key购买 nike

我正在使用 C++ 在 Mac OS 上编写一个多线程程序,我需要测量它的时间成本。

在这里我发现一些函数可能对测量时间有用:

  1. clock():对于多线程程序,它不准确。
  2. time():可以测量时间,但精度只有秒。
  3. gettimeofday():我写了一个示例来测试它,但是时间测量错误。


#include <stdio.h>
#include <iostream>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

using namespace std;

int main()
{
timeval start, finish;
gettimeofday(&start,NULL);

sleep(10); //sleep for 10 sec

gettimeofday(&finish,NULL);

cout<<(finish.tv_usec-start.tv_usec)/1000.0<<"ms"<<endl;


return 0;

}

输出只有几毫秒,我不知道为什么。

有谁知道在 Mac OS 上测量时间的其他函数吗?

最佳答案

每个值都是循环的 - 当 msecs 达到 1000 时,secs 增加并且 msecs 设置回 0。当 secs 达到 60 时,mins 增加并且 secs 设置回 0。

如果您尝试以这种方式测量时间,则需要考虑所有大于所需最小分辨率的字段。

关于c++ - 如何使用 C++ 测量 Mac OS 上多线程程序的时间成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com