考虑以下两种情况:
void Foo1(int a, int b, int c, int d) {
return a + b + c + d;
}
相对
void Foo2(MyArgs args) {
return args.getA() + args.getB() + args.getC() + args.getD();
}
两种情况都有速度优势吗?我读过 JIT 将内联吸气剂。那么将多个对象与将单个对象传递给函数相比是否有更多开销,或者这是否也被优化了?
我专门寻找有关速度的答案。我正在编写一些代码来递归搜索一棵非常大的树,所以这种类型的调用将被使用很多很多次。我的函数必须在超时发生之前尽快返回。我想尽可能地搜索到树中。
如果速度基本相同(即 JIT 使两个功能基本相同),那么我可以根据可读性和可维护性进行选择。
顺便说一句,Java中是否有很多参数,如果你保持在下面,那没关系,但如果你越过它就不好了?例如,我在机器上工作过,如果您有 4 个或更少的参数,那么它们将存储在寄存器中,而超过 4 个将被推入堆栈?
顺便说一句,我仍然是Java新手......
另外,在您回答“过早”之前,我了解过早优化。我现在处于优化阶段。我已经编写了我想要优化的递归函数,TIA。