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

问题描述:

什么是处理能力来分析这个比率:布尔比较与整数比较的处理成本比率是多少?

boolean: true != false 

与此:

int: 1 != 0 

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

假设这些变量,而不能是常量,大概没有什么不同。

答案是JVM和应用程序特定的,但我希望你会看到没有可衡量的差异。 (我说它是特定于应用程序的,因为周围的上下文可能会影响JIT编译器能够生成最佳本机代码的方式)。当然浪费你的时间。 JIT编译器可以做得比你做得更好,而且你甚至可能会发现重写代码使用int而不是boolean禁止优化。

最有生产力的策略是编写代码,使其可读,并专注于算法和数据结构的设计。如果您的实施代码太慢,只有微观优化,并且当您决定执行此操作时,请使用分析功能来告诉您将工作重点放在哪里。