在构造函数中使用this和内联代码之间的权衡



通过this()调用重载构造函数很有用的一个原因是它可以防止不必要的代码重复。在许多情况下,减少重复代码可以减少加载类所需的时间,因为对象代码通常更小。这对于通过Internet传送的程序尤其重要,因为加载时间是一个问题。

然而,你需要小心。调用this()的构造函数将比内联包含所有初始化代码的构造函数执行得慢一些。这是因为调用第二个构造函数时使用的调用和返回机制增加了开销。如果您的类只用于创建少数对象,或者类中的构造函数调用this()将很少被使用,那么这种运行时性能的下降可能是微不足道的。

加载类的时间如何更小?和在构造函数中使用this和使用内联代码之间的权衡点应该是什么?

这是一个非常典型的过早优化的例子。在消除重复时,没有人考虑性能,他们只考虑删除几个本质上做同样事情的代码路径,同时使代码库混乱,并在这些代码路径之间提供分歧的机会。

结论:不要担心这些琐碎的事情,只要写好简洁的代码就可以了。重复对系统的伤害比方法调用对性能的伤害要大一千倍。

最新更新