Java函数调用性能优化
我有一个名为Java函数调用性能优化,java,algorithm,inheritance,Java,Algorithm,Inheritance,我有一个名为HugeClass的类,其中定义了公共方法addButton() public class HugeClass{ public void addButton(){ etc... } public HugeClass getHugeClass(){ etc... } ...lots of big number crunching logic... } 有一个名为myController的类,它调用getHugeClass() 我们的客户希望我们不要在printControlle
HugeClass
的类,其中定义了公共方法addButton()
public class HugeClass{
public void addButton(){ etc... }
public HugeClass getHugeClass(){ etc... }
...lots of big number crunching logic...
}
有一个名为myController
的类,它调用getHugeClass()
我们的客户希望我们不要在printController
中调用getHugeClass()
,因为代码很长,占用了大量内存,因为它处理前端显示字段的逻辑。有更好的解决办法吗
我正在考虑将
HugeClass
扩展到printHugeClass
,然后在printController
中调用它。性能会更好吗,还是会相同,因为它正在以某种方式调用原始的HugeClass
,并且必须同时运行整个父类?或者addButton
需要一个正确构造的HugeClass
实例,您无法避免它(子类化不会有什么区别)
或者,您不需要调用HugeClass
中包含的所有详细信息来调用addButton
,现在也许是时候考虑将HugeClass
拆分为更小的独立组件了
cf.(单一责任原则)。这完全取决于以下事实:
pritnController
需要getHugeClass()
的以下语句
..lots of big number crunching logic...
如果您可以避免这些语句,那么扩展
HugeClass
将解决您在重写getHugeClass()
时遇到的问题addButton()
在多大程度上依赖于HugeClass
的其余部分?如果类变得如此庞大,那么重构它并移动addButton()所需的部分可能是值得的
到另一个新类中。首先,java中的类有多大并不重要,类加载器只会加载一次。您的性能问题与其他问题有关,您需要使用分析工具
我的建议:不要做任何假设,如果你有性能问题,它可以是任何东西。当然,它与java加载类的速度无关,除非你在静态初始化块中没有逻辑。
addButton()
也被其他控制器类使用,它们也调用getHugeClass()
hmm,是的printController
将只使用HugeClass
中的addButton()
函数,而不会使用其他庞大的数字运算逻辑。。。
..lots of big number crunching logic...