【发布时间】:2010-09-20 23:25:18
【问题描述】:
在 Java 中声明方法参数 final 是否有任何性能原因?
如:
public void foo(int bar) { ... }
对比:
public void foo(final int bar) { ... }
假设bar 仅在foo() 中被读取而从未被修改。
【问题讨论】:
-
我想不出编译器会关心您是否声明方法参数 final 的原因。但这个问题的真正答案是——写两个函数,一个带有最终参数,一个带有常规参数。每次运行它们一百万次,看看是否有任何明显的运行时差异。如果您担心性能,那么对您的代码进行一些分析工作并找出究竟是什么让您慢下来是非常重要的。这几乎肯定不是你所期望的:)
-
我建议你永远不要编写微基准测试。您不知道 JIT 可以进行哪些优化以及何时进行,并且您可能会错误地理解它仅在执行“简单测试用例”时的行为方式
-
可能是这样,但这里没有人写过或建议过微基准测试...
-
@Mike Blandford 的回答建议使用微基准,不是吗?
-
用 Java 编写微基准测试非常棘手
标签: java performance final