由于两者都有!<和>=具有相同的函数,所以我想知道在Java和其他语言中是否计算得更快。我不知道你怎么测试这个所以这就是我为什么要问的原因之一。我听说Java处理32位num (int)比8位num(字节)快,因为它基于32位基础设施。由于前面提到的句子,我想知道在Java中!<或>=的计算速度是否更快(或者两者都不是)。
*编辑:字节是8位,而不是4位。
发布于 2021-12-15 08:07:16
不,这没什么区别。为这两个变体生成的Java代码在这两种情况下几乎相同。
您可以使用“天栓”进行比较:链接
唯一的difference是对双值使用dcmpg而不是dcmpl,这不应影响速度:
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html dcmpg和dcmpl指令仅在处理涉及NaN的比较时有所不同。NaN是无序的,因此,如果它的操作数的任一或两个操作数都是NaN,则任何双重比较都会失败。在dcmpg和dcmpl都可用的情况下,可以编译任何双重比较,以便将相同的结果推到操作数堆栈上,无论比较是在非NaN值上失败,还是由于遇到了NaN而失败。有关更多信息,见第3.5节。
编辑:正如@GhostCat所指出的,JIT编译器可能会根据底层硬件生成不同的机器代码。
https://stackoverflow.com/questions/70359758
复制相似问题