2013-10-30 77 views
-3

在算术运算的情况下,CPU周期的表现如何? 像增加两个64位整数32位机器上的64位可变算术运算的行为

编辑:

我们能在32位机器64位变量? - 当然是在提问的时候我很困惑,所以现在就编辑它。

+0

是的,当然可以。除非你有一个引人注目的情况,通过这个(尽管不太可能)看到性能问题,那么CPU周期行为*并不重要。* – berry120

回答

4

是的,例如,java long是64位二进制补码整数。 CPU周期取决于处理器芯片组和不同的JDK/JRE实现,但显然它将比64位机器的周期多。我建议你在目标硬件和JDK/JRE上进行实验。

+1

+1加起来大约是2倍,乘法大约是4倍,除法是慢得多,并根据CPU而变化。 –

+0

感谢@PeterLawrey基本上我在考虑字撕开,就像在java中一样,如果我在多线程env中在32位操作系统上添加2个long(64位)整型变量,那么atmoic操作的可能性将在1位或32位上进行操作在一个atmoic操作? – Vipin

+0

@ user2922515这很可能取决于处理器。在x86系统上,很难找到真正的32位处理器,即无法执行64位操作的处理器。如果您使用的是较旧的ARM处理器,则它们没有定义好的内存模型,我认为这可能是一个问题。 Java并不总是将64位操作指定为原子操作,但是在x86系统上它们是。 –