Car*_*s00 1 c c++ performance gcc
可能的重复:
无符号与有符号整数的性能
我读的地方,它是一点点更快的x86_64
比较signed ints
中C/C++
相比unsigned ints
,如for (int i...
)是“快”比for (uint i...)
。
真的吗?为什么这是真的?我知道差异非常小,但无论如何。
你最好为这样的说法引用一个来源,这从表面上看是荒谬的。
我们谈论的是 x86_64,这意味着现代处理器。这些 ALU 将在单个时钟周期内完成整数加法、减法和/或比较(缓存未命中当然需要更长的时间,但仅取决于数据的大小和内存布局,而不是符号性)。甚至更少,使用 SIMD 协处理器。
我更可能相信两种比较之间存在轻微的功率差异,但不是速度差异。
现在,对于特定的编译器,当面向 x86_64 平台时,一种数据类型的代码生成可能比另一种更糟糕。但这将是一个非常特殊的情况,不太可能适用于所有 x86_64 编译器。而且,我仍然怀疑缓存效果或后台进程正在影响性能测量(即使是测量每个进程花费的时间的性能计数器也会受到使缓存无效的上下文切换的影响)。
归档时间: |
|
查看次数: |
2269 次 |
最近记录: |