Nic*_*ler 6 java parameters methods performance
当我使用has/use方法有很多(超过一百个)参数时,它在计算性能方面是否无效?
我并不是说在可维护性方面有效,而只是在"原始"计算性能方面:)
从理论上讲,也许,由于 Java 是按值传递的,这意味着当调用函数时,JVM 会复制每个参数值并将副本提供给函数,因此可能会在某个点上参数的数量对执行时间有不可忽视的影响。但在实践中,只要有可能,这些副本都是“浅”副本,这意味着它们更像是参考,因此实际制作副本所花费的时间很少。因此,您可能需要超过 100 个参数才能对性能时间产生明显影响。
无论如何,即使考虑这样的事情的执行时间,听起来也很像是过早的优化。几乎可以肯定它不是程序的瓶颈,因此在您确定它确实导致速度减慢之前,不值得花时间在上面。如果您的程序速度慢得令人无法接受,请调查其他可能的速度下降原因。
当然,正如您提到的,还有“可维护性”问题。为什么单个函数需要数百个参数?它们是复杂的参数(例如自定义对象的 ArrayList),还是简单的内置数据类型?如果是后者,为什么不考虑将它们打包成数组、ArrayList 等呢?或者,为什么不将函数分解为多个函数呢?现代计算机的速度足够快,对于许多(可以说是大多数)目的而言,程序员的时间比处理器时间更有价值,因此在编码时,您首先关心的通常应该是您正在编写的内容是否易于理解且写得好,而不是它是否快速地。