Fak*_*ken 0 c++ variables performance
这是参考C++和使用Visual Studio编译器.
读/写(到RAM)和对不同类型的变量(如bool,short int,int,float和double)进行数学运算时,速度是否有任何差异?
据我所知,到目前为止,使用双精度的数学运算需要更长的时间(我说的是32位处理器,我对64位处理器知之甚少),而不是使用浮点运算.
然后用float和int比较运算(读/写ram和初等数学)?int和short int如何,甚至每种类型的有符号和无符号版本之间的差异如何?是否有一种数据类型最适合使用低数量计数器?
谢谢, - 完
这里有两个不同的问题:读/写时的速度和算术性能.那些是正交的.当然,当读取或写入大型数组时,速度取决于读取的字节数为O(N),因此使用short
over int
(考虑VC++)会将时间减少~1/2.
对于算术运算,一旦操作数在寄存器中,类型的大小就没那么重要了.IIRC,在同一类别的类型之间,它实际上是相同的(因此short
不是更快或更慢int
).在32位平台上使用64位整数类型自然会受到惩罚,因为没有单一指令可以处理它.另一方面,浮点类型比所有整数类型都慢,即使sizeof(float)==sizeof(int)
在VC++上也是如此.但是,再次,操作float
并不比操作更快double
; 这是假设默认的FPU设置,它将所有操作数提升为80位扩展浮点数 - 这可以被禁用以挤出更多的使用float
s,IIRC.
以上是VC++和x86特有的,根据问题的要求.其他平台,尤其是其他架构,可以根本不同.
作为数字计数器(低或非低)最有效的最佳数据类型是int
- 通常与架构和实现无关(因为标准建议将其作为平台的首选字大小).
归档时间: |
|
查看次数: |
292 次 |
最近记录: |