编程语言
首页 > 编程语言> > java – 调用链函数会产生开销吗?

java – 调用链函数会产生开销吗?

作者:互联网

调用函数链有开销吗?
例如,在以下for循环中:

for(int i = 0; i < n; i++)
{
  var=object.method1().method2().method3();
}

第一个效率低于第二个吗?

var = object.method1().method2();
for(int i = 0; i < n; i++)
{
  var.method3();
}

我关心的是知道函数调用/返回的开销是多少,而不是函数在内部做的事情.

谢谢.

解决方法:

你的两个片段在功能上并不相同.

你的原始问题被标记为c / Java,所以让我们继续.功能语言可能会以不同方式对待它.

通常第二个版本更快,因为method1().method2()只需要调用一次.在C和Java中,编译器很难确定调用method1().method2()是否有任何副作用.考虑一种以用户输入为例的方法.

如果这些方法有副作用,则编译器无法对var = object.m1().m2().m3()中的调用次数进行任何优化.

链接本身不会产生任何开销.

标签:java,c-2,performance,method-chaining
来源: https://codeday.me/bug/20190529/1176042.html