获得近似时差的最快方法

时间:2018-04-28 23:30:26

标签: c performance

我有一个方法可以将当前时间作为字符串返回。虽然这种方法每秒被调用数百万次,因此我以多种方式优化了这种方法(静态分配时间字符串的缓冲区等)。

对于这个应用程序来说,接近时间是完全正确的。例如,我使用10毫秒的分辨率。在这段时间内返回相同的时间字符串。

虽然在分析代码时clock()调用会消耗大量时间。

我还有什么其他更快的选择来用毫秒分辨率来估算时差?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:解决方案是限制对clock()或任何时间函数的调用。整个测试用例的总执行时间现在快22倍。

我认为我可以在对此进行广泛分析之后给出一般性建议:如果您能够以较低的时间分辨率生活,并且您确实需要优化代码以提高速度,请将问题更改为使用单个全局计时器并避免代价高昂每次运行的时间比较。

我现在有一个简单的线程,在所需的解析时间内休眠,并在每个循环上更新一个原子int ticker变量。 在我需要优化I的函数中,然后只比较两个整数(最后一个tick和当前的tick)。如果不相等,则需要更新。