【发布时间】:2017-09-18 16:03:14
【问题描述】:
例如,在显微镜下观察代码时,第一个代码块是否比第二个代码块使用更多的计算时间?
代码块 1:
method1() {
do something;
call method2;
}
method2() {
do something simple like assign a variable value;
}
代码块 2:
method1(){
do something;
do something simple like assign a variable value;
}
很简单,但我想看看这里是否有人知道考虑这一点的价值(例如优化程序以缩短计算时间)。
作为一个例子,我了解到电路中的门具有有限的“Delta 延迟”,在考虑设计中的时钟速度时,可以将其相加来查看电路将具有的最大延迟。 Java有类似Delta延迟的东西吗?
【问题讨论】:
-
在您可以通过基准测试证明这是您遇到的最重要的性能问题之前,不要浪费您的时间担心这个问题。如果 JIT 确定方法更好,它将内联方法;你应该专注于编写可读、可维护的代码。
-
您实际上可以通过使用短方法获得性能。一旦我手动拆分了一个很长的方法并获得了 40% 的速度。 JIT 可以内联,但不能“概述”方法,因此可读性和性能通常呈正相关。
标签: java optimization java-8 mathematical-optimization