【发布时间】:2015-04-24 10:56:23
【问题描述】:
我经常看到将整数转换为双精度整数再转换为双精度整数的代码(有时是有充分理由的,有时不是),我突然想到这似乎是我程序中的“隐藏”成本。我们假设转换方法是截断。
那么,它到底有多贵?我确信它会因硬件而异,所以让我们假设一个新的英特尔处理器(Haswell,如果你愿意,尽管我会接受任何东西)。一些我会感兴趣的指标(虽然一个好的答案不需要全部):
- 生成的指令数
- 使用的周期数
- 与基本算术运算相比的相对成本
我还假设,考虑到我们每秒可以执行的计算量与数据量之间的差异,我们最能感受到转换速度慢的影响的方式是功耗而不是执行速度实际上可以每秒到达CPU。
【问题讨论】:
-
如果没有考虑到特定的系统,这没有多大意义。首先,有些系统甚至没有 FPU。
-
@Lundin:C++/cli 支持哪些处理器嗯?
-
@Joshua 您在几年前发表评论时编辑的标签中不存在,然后发表关于它的尖刻评论?好的......问题需要由OP进行澄清。我们不需要阅读答案来理解问题。
-
@Lundin:我添加了微优化。 C++/cli 已经在那里了。
标签: c++ x86 c++-cli x86-64 micro-optimization