nobody 发表于 2019-7-12 23:23:31

与float,int,double的区别

对于大多数应用程序来说,使用浮点、整数、双精度等与计算机的能力在速度上是否有很大差异?我想,要注意到这一点,就必须有人开发一些令人难以置信的程序。我错了吗?
**** Hidden Message *****

Atook 发表于 2019-7-13 00:58:41

我对性能也很好奇。
但实际上,从与CAD的接口角度来看,最好只是为CAD提供它所期望的类型。

kdub 发表于 2019-7-13 01:23:40


https://lmgtfy.com/?q =速度%20差异% 20浮动% 20 int % 2C % 20 double % 2C % 20 decimal % 20 in % 20C % 23 & s = g

kdub 发表于 2019-7-13 02:00:37

...这可能足以让你的眼睛充血。
http://nicolas.limare.net/pro/notes/2014/12/12_arit_speed/

dgorsman 发表于 2019-7-15 04:20:23

你在看什么尺度?几百到几千,用户可能看不出有什么不同。从几十万到几百万,更大的值类型将开始显示差异。不过,过于自满是个坏主意。没有必要处处都进行优化,但是有意识地做总体上更好、更有效的代码。

MickD 发表于 2019-7-15 18:55:37


我不知道C#编译器在多大程度上优化了类变量的内存,但在C/C++中,将变量“字节对齐”以使其更易于在32/64位块中访问可能很重要,但这可能不如如何构造例程和大容量数据重要(缓存未命中可能会对cpu性能造成~200倍的速度影响!)。也就是说,在检索下一批代码和数据之前,更有效的方法是获取函数和变量并希望它们适合缓存(比如L1/L2),然后尽可能多地运行它们
因此,如果您正在为嵌入式系统或VR/游戏/动画编写代码,这一点很重要
鉴于此,除非您试图以每秒60帧的速度执行gig计算,否则就不值得担心,即使使用双精度浮点运算速度较慢,我们所说的是每次例程运行的毫秒“差”。如果这真的很重要,那么我就不会使用任何解释过的语言或运行在虚拟机上的语言,比如C#。
hth

kdub 发表于 2019-7-16 06:32:48

是的,如果您使用SIMD,它们可以产生巨大的影响。NET
SSE2 XMM寄存器:
四个32位单精度浮点数
两个64位双精度浮点数或
两个64位整数或
四个32位整数或
八个16位短整数或
十六个8位字节或字符。
否则可能不会,只需使用您需要的类型
页: [1]
查看完整版本: 与float,int,double的区别