c# - float 与双重性能

标签 c# .net clr performance

我做了一些计时测试,也阅读了一些文章,比如 this one (最后一条评论),看起来在 Release 构建中,float 和 double 值花费相同的处理时间。

这怎么可能?当 float 与 double 值相比精度较低且较小时,CLR 如何才能在相同的处理时间内获得 double 值?

最佳答案

至少在 x86 处理器上,floatdouble 将分别由 FPU 转换为 10 字节的实数进行处理。 FPU 没有针对其支持的不同浮点类型的单独处理单元。

floatdouble 快的古老建议在 100 年前应用,当时大多数 CPU 没有内置 FPU(而且很少有人有单独的 FPU芯片),因此大多数浮点运算都是在软件中完成的。在这些机器上(由熔岩坑产生的 Steam 提供动力),使用 float 更快。现在,float 的唯一真正好处是它们占用的空间更少(只有当您有数百万个时才重要)。

关于c# - float 与双重性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/417568/

相关文章:

c# - 从 XML 序列化数组中删除包装元素

c# - 打开组合框下拉列表时更改光标

c# - 如何在 Web 服务中初始化静态变量

c# - 删除 TabPage : Dispose or Clear or both?

c# - 如何仅在最小字符后检查密码强度?

c# - 如何正确使用TransactionScope?

c++ - CLR 干扰 C++ STD?

c# - 将 C# API 编写为 C++ 代码的包装器?

c# - 使用 Double 数据类型传输 Money 值

c# - .NET CLR 内部调用