首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将秒和纳秒转换为微秒的最快(最佳时间)方式

将秒和纳秒转换为微秒的最快(最佳时间)方式
EN

Stack Overflow用户
提问于 2016-06-27 22:28:07
回答 2查看 810关注 0票数 0

我想用C编写函数,以秒和纳秒作为输入。将秒和纳秒转换为微秒,返回以微秒为单位的总数。

代码语言:javascript
复制
unsigned long long get_microseconds(int seconds, unsigned long long nSeconds);

现在,转换非常琐碎。我可以用下面的公式-

mSeconds =秒*1000000+n秒/1000(纳秒转换的精度损失是可以的,我的计时器至少有100微秒的分辨率)

在不使用乘法和除法操作符的情况下实现这个方程的最快方法是获得最好的精度和最少的cpu周期。

编辑:我在一个基于GNU的定制DSP上运行,但是定制了工具链。我没有真正测试算术运算的性能,我只是想知道它是否会影响算法的性能,以及是否有改进的方法。

EN

回答 2

Stack Overflow用户

发布于 2016-06-27 22:31:17

代码语言:javascript
复制
return Seconds*1000000 + nSeconds/1000;

如果有任何值得做的位移位或其他位操作,您的编译器可能会处理它。

票数 6
EN

Stack Overflow用户

发布于 2016-06-27 22:37:21

编译器几乎肯定会尽可能地优化乘法。当除以1000时,它不会做的是“接受一个小损失”,所以您可能会发现会发现它写得更快一些。

代码语言:javascript
复制
return Seconds*1000000 + nSeconds/1024; /* Explicitly show the error */

...keeping记住,nSeconds不能增长太多,否则错误可能会变得不可接受。

但无论你做什么,都会测试的结果--速度和准确性都高于实际输入。还探索将函数转换为宏并将调用全部保存起来。坦率地说,对于如此简单的计算,几乎没有比优化编译器更好的机会了。

同时,在全局算法的范围内考虑这种优化的权重。这个函数的调用频率是否真的达到了它节省下来的钱是值得的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38064188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档