布尔比较的处理成本与int比较的比率是多少?

时间:2012-03-04 02:57:40

标签: java

用于分析此处理能力的比率是多少:

boolean: true != false

与此相对:

int: 1 != 0

3 个答案:

答案 0 :(得分:4)

答案是JVM和特定于应用程序,但我希望您看不到可测量的差异。 (我说它是特定于应用程序的,因为周围的上下文可能会影响JIT编译器生成最佳本机代码的方式。)

说真的,如果你正在考虑在这个级别进行微观优化,你几乎肯定浪费你的时间。 JIT编译器可以做得比你做得更好,你甚至可能发现重写代码以使用int代替boolean 禁止优化。

最有效的策略是编写代码以使其可读,并专注于算法和数据结构的设计。如果您实施的代码太慢,只有微优化,当您决定这样做时,使用分析来告诉您在哪里集中精力。

答案 1 :(得分:1)

假设这些是变量,而不是常数,可能没有任何区别。

答案 2 :(得分:1)

它们实际上是相同的成本,但真正的答案是它依赖于虚拟机等。如果JVM包含布尔值(因为这个问题答案可能建议布尔数组:What is the size of a boolean variable in Java?)然后访问布尔值可能需要一些额外的算法来屏蔽重要的位/字节。但是,它的成本通常是相同的。