gpt4 book ai didi

clock() 在某些平台上不工作

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:26 28 4
gpt4 key购买 nike

我对 clock() 有疑问在运行 32 位版本的 Debian 6.0.3 的机器上。它似乎总是返回 0。使用 this example program 时,我得到以下输出:

Calculating...
The number of primes lower than 100,000 is: 9592
It took me 0 clicks (0.000000 seconds).

但是,在 VMWare 虚拟机中运行的同一系统会产生预期的输出:

It took me 60000 clicks (0.060000 seconds).

这里可能是什么问题?有没有更好的可移植方法来对主机生成的代码和处理能力进行基准测试? (我需要这个来进行快速而肮脏的 bcrypt 基准测试)。

最佳答案

也许您的机器太快了,clock 的分辨率为微秒。

没有其他可移植的方法可以单独在 C 中执行此操作,甚至这也可能受到质疑,因为大型软件供应商有 clock 返回挂钟时间而不是 cpu 时间。

由于您使用的是 POSIX 系统,我建议使用提供的工具,即 clock_gettime 和时钟 CLOCK_PROCESS_CPUTIME_IDCLOCK_THREAD_CPUTIME_ID。现代 Linux 很好地支持它们。

如果您需要适用于所有三者(Linux、Windows、Mac)的功能,请使用 POSIX 版本作为默认版本,并为 Windows 和 Mac 创建后备版本。两者似乎都不符合标准; Windows 甚至不符合 C 标准,Mac 也不符合现代 POSIX。这使您可以维护两个异常代码,我希望这不会太困难。

关于clock() 在某些平台上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17917785/

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