![]() |
1
3
主要是对编辑的回答,而不是最初的问题:我移植了一个应用程序,它对统计和(特别是)线性代数非常重要,可以作为64位代码运行。对于这段代码,所做的努力是最小的,我们的速度提高了3:1。 我怀疑大多数这样的概念,即通常不会有来自(通常是间接的)公司的代码将不容易移植,并尽最大努力告诉客户为什么继续购买他们的程序是一个好主意,即使它仍然是32位代码。我移植的代码(或者在大多数情况下只是“重新编译”)。 没有人 以64位代码的形式出现的速度要慢一些,而且大多数代码的出现速度至少要快一点。 |
![]() |
2
3
答案可能是。你必须测量。 使用64位目标允许使用更多的寄存器,这意味着对内存的访问更少,因此执行速度更快。 另一方面,使用64位目标会强制所有指针和地址都是64位,从而扩大内存占用,并降低执行速度。 |
![]() |
3
1
答案可能很大。 针对不同的平台肯定会对应用程序产生性能影响,因为您正在对应用程序进行实质性的更改。它对于类型、操作和交互的操作系统具有不同的大小语义。 这些因素和许多其他因素肯定会导致应用程序中的性能变化。无论它是微妙的,巨大的,更好的,更糟的,等等…将高度特定于您正在编写的应用程序类型。如果没有更多的细节,就不可能给出一般的答案。 |
![]() |
4
0
其他一切都相等(不太可能),64位的额外数据大小(处理指针时要移动的数据量的两倍)将导致期望它变慢。 但其他因素(如头顶的哇)可能主导一切… 唯一的方法是在目标硬件上测试应用程序。 |
![]() |
5
0
如果大部分执行时间都花在数学上,那么您可能会得到一个好处。在大多数情况下,这是不正确的。如果你在做核反应堆的蒙特卡罗模拟,或者光线跟踪渲染,或者类似的事情,你可能会看到一个巨大的好处。我的拭子“没什么好处” |
![]() |
6
-1
可能更慢-您已经有效地将CPU缓存的大小减半了 当然,英特尔和AMD的工程师都知道这一点,因此内存管理器做了大量工作来减少64位宽指针和整数的影响,因为只有32位低 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 4 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 4 月前 |