【发布时间】:2011-11-12 18:42:00
【问题描述】:
我是一名高级开发人员,所以在我看来这是一个愚蠢的问题。我的答案应该是否定的,或者什么?不!!!
但我昨天在开会,正在解释一些 PMD 结果。当我们遇到“方法名过长”的问题时,我开始解释,客户说:嗯,记住方法名过长对性能有影响,程序运行慢。
我说:不,你错了,只是一个干净的代码规则,得到一个好代码很重要,但与性能无关,字节码相似,不同名称。
但是客户,还有一些在会议上争论的人,对此很确定。他们有一些项目,方法名称过长是性能不佳的原因。
我唯一的想法是一些自省或反射的东西与此有关,但除此之外,我确信,或者我认为我是肯定的,方法名称长度对性能没有任何影响。
对此有何想法或建议?
【问题讨论】:
-
两周前我穿了红袜子,开始下雨了。从那以后我就一直穿着蓝袜子,我们没有下过雨。这听起来可能不相关,但可能与您的客户使用的推理链相同。
-
@ivarni:你说得对,这正是最有可能发生的事情。
-
谁声称这不知道编程语言是如何实现的,或者完全愚蠢(没有好的说法)以至于他们没有发现实现它们时最简单的潜在优化(或者,可能更糟,假设 JVM 作者是白痴)。他们似乎也无法正确验证他们的假设。
-
@delnan:这也是我的第一个想法,但后来我退后一步,认为 Java 可能只是具有某种独特的设计功能,而 OP 的情况可能只是事实证明是合理的:-)
-
@KerrekSB:这样的事情将是极其模糊的极端情况,如果它们会对性能产生影响,那么有人会进行优化以在不需要时消除这种影响。据我所知,完全有可能在编译时为所有方法、成员和变量分配索引,我相信 java 字节码确实做到了。当然,您可以使用 O(n) 的反射信息来做事情,其中 n 是方法名称的长度,但我认为假设情况并非如此(尤其是考虑到一般索赔的性质)。
标签: java performance profiling pmd