GWT 交换机性能 - PMD 的建议
Posted
技术标签:
【中文标题】GWT 交换机性能 - PMD 的建议【英文标题】:GWT switch performance - a suggestion from PMD 【发布时间】:2012-03-27 01:27:14 【问题描述】:PMD 在我的 GWT 项目中建议,如果我的 switch
分支少于 3 个,我应该将其更改为多个 if
s。我知道这是编译为 javascript,但我想知道它是否对 GWT 有任何影响。与switch
相比,您认为使用if 生成的Javascript 是否更有效?当前的 GWT 编译器(2.4)是否对此进行了优化?
【问题讨论】:
这里有性能问题吗?如果没有,甚至不要考虑这样的性能优化。关于可读性:我认为switch
更容易阅读和扩展——使用enum
s 时更不容易出错(另外你还可以获得工具支持)。所以我会更改 PMD 设置,但这只是个人喜好问题。
除非你完全是性能怪胎并且开关被调用了数百万次,否则我认为你可以放弃而无需更多调查。
我同意你的观点,但是 PMD 趋势图是严格的。
总的来说,这是一件好事。但是您不必同意他们所做的每个假设:TooFewBranchesForASwitchStatement “Swith 被设计为复杂的分支,并允许分支共享处理。不建议仅对少数分支使用开关,因为开关不像如果。在这种情况下,最好使用 if 语句来代替,至少可以提高代码的可读性。如前所述,我完全不同意,并且会更改该设置。
【参考方案1】:
根据这个网站:http://oreilly.com/server-administration/excerpts/even-faster-websites/writing-efficient-javascript.html#the_switch_statement 通过这个答案找到:https://***.com/a/2923007/66416 这很重要:
在 JavaScript 中,if 语句通常比 switch 更快 只需要评估一两个条件时的语句。
对已编译的 GWT 2.4 文件的快速扫描发现没有将“小”switch 语句替换为 if 语句。所以它实际上可能是 PMD 的一个有用的建议。
【讨论】:
以上是关于GWT 交换机性能 - PMD 的建议的主要内容,如果未能解决你的问题,请参考以下文章