当前位置: 首页 > 面试题库 >

性能32位与64位算术

农飞星
2023-03-14
问题内容

本机64 bit整数算术指令是否比其32 bit计数器部件慢(在x86_64装有64 bitOS的计算机上)?

编辑:在当前CPU上,例如Intel Core2 Duo,i5 / i7等。


问题答案:

这取决于确切的CPU和操作。例如,在64位Pentium IV上,64位寄存器的乘法要慢得多。Core 2和更高版本的CPU从一开始就设计用于64位操作。

通常,即使是为64位平台编写的代码也使用32位变量,其中的值将适合它们。这主要不是因为算术更快(在现代CPU上通常不是),而是因为它使用更少的内存和内存带宽。

如果整数是32位的,则包含一打整数的结构的大小将比64位的大小小一半。这意味着将需要一半的字节存储空间,一半的高速缓存空间,依此类推。

如果值可能不适合32位,则使用64位本机寄存器和算术。但是主要的性能优势来自x86_64指令集中可用的额外通用寄存器。当然,还有64位指针带来的所有好处。

因此,真正的答案是没关系。即使您使用x86_64模式,您也可以(并且通常会这样做)使用32位算术,它将获得更大的指针和更多的通用寄存器的好处。当您使用64位本机操作时,这是因为您需要64位操作,并且您知道它们比使用多个32位操作伪造它要快-
这是您唯一的选择。因此,在任何实施决策中,32位与64位寄存器的相对性能决不应成为决定因素。



 类似资料:
  • 问题内容: 针对32位JDK构建和编译为32位字节代码的Java代码是否可以在64位JVM中工作?还是64位JVM需要64位字节代码? 为了提供更多细节,我有在运行32位JVM的Solaris环境中工作的代码,但是现在将JDK和Weblogic Server升级到64位后遇到了问题。 问题答案: 是的,假设您使用平台无关的库,则Java字节码(和源代码)是平台无关的。32与64位无关紧要。

  • 问题内容: 我想知道x86和x64中的64位长吗? 问题答案: 是。Java 在任何JVM上都是64位,无一例外。所有Java原语类型都是完全可移植的,并且在所有实现中都具有固定的大小。

  • 问题内容: 我已经使用Java一段时间了,而我典型的设置新开发机的习惯要求从Oracle站点下载并安装最新的JDK。 今天这引发了一个不寻常的问题, 回想起来,我已经安装了之前的两个版本,并且很高兴将普通的工具链插入(Eclipse)。在我的日常编程中,我不会回想起曾经因为使用64位JRE(或为此目的而针对64位JRE)而不得不以其他方式进行更改或思考的事情。 根据我对64位和32位的理解- 确实

  • 问题内容: 我注意到Sun提供了64位版本的Java。它的性能是否比32位版本好? 问题答案: 定义您的工作量以及“表现”对您的意义。 作为一个长期存在的表现极客,这对我来说是种烦恼。特定更改是否“执行得更好”,首先取决于工作量,即您要程序执行的工作。 64位Java通常会在计算量很大的情况下表现更好。Java程序通常具有沉重的I / O负载和沉重的网络负载。64位和32位可能无关紧要,但是操作系

  • 问题内容: 我的电脑正在使用Windows 7 64位。但是将要部署我的jsp Web应用程序的服务器是32位。 我需要在PC上安装32位JDK / JRE才能进行开发吗?我正在使用Eclipse。 非常感谢你。 问题答案: 您绝对不需要安装32位JRE即可进行开发。您构建的Java代码不会跟踪您的64位。(我假设您没有使用JNI,这会使事情变得有些复杂。) 不过,您 可能 需要安装32位JRE进