GWT 交换机性能 - PMD 的建议

Posted

技术标签:

【中文标题】GWT 交换机性能 - PMD 的建议【英文标题】:GWT switch performance - a suggestion from PMD 【发布时间】:2012-03-27 01:27:14 【问题描述】:

PMD 在我的 GWT 项目中建议,如果我的 switch 分支少于 3 个,我应该将其更改为多个 ifs。我知道这是编译为 javascript,但我想知道它是否对 GWT 有任何影响。与switch 相比,您认为使用if 生成的Javascript 是否更有效?当前的 GWT 编译器(2.4)是否对此进行了优化?

【问题讨论】:

这里有性能问题吗?如果没有,甚至不要考虑这样的性能优化。关于可读性:我认为switch 更容易阅读和扩展——使用enums 时更不容易出错(另外你还可以获得工具支持)。所以我会更改 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 的建议的主要内容,如果未能解决你的问题,请参考以下文章

交换机老化测试和性能测试方法收集

PMD 可用于派生 IntelliSense 信息吗?

三层楼100人办公网络如何规划设计实施(实战案例)

GWT 等待 setVisibleRangeAndClearData 完成

华为交换机S57系列配置ssh 安全级别以及建议

交换机基本介绍(分类性能指标硬件构成及工作方式)