假设这个构造
switch(foo) {
case "foo":
// ...
break;
case "bar":
// ...
break;
...
default:
// ...
break;
}
或类似的条件块(仅限通用逻辑运算符),实际上将最可能的条件放在第一位是否有意义,性能方面呢?
如果是这样,那么它开始有意义的门槛是什么,与“麻烦”相比,找出最可能的条件是什么?
答案 0 :(得分:3)
这种微优化会带来比解决更多的问题。使用Javascript,由于JS引擎抽象的许多实现细节,因此评估此类构造相对较难。分析也不一定非常有见地。
JS是一种脚本语言,而不是C.让你的代码可读和简洁 - 顺便说一下,无论你写什么语言,这都应该是你的口头禅。
答案 1 :(得分:1)
答案是肯定的,这是有道理的。如果你知道有什么东西有更高的百分比是真的,为什么不把它放在第一个条件?我相信即使用脚本语言也能进行合理的编程。
只是因为它有意义,但并不是必要的。如果它的代码不经常运行,那么订单的重要程度可以忽略不计。但是,具有多个条件语句的大型循环中的代码可能会略微降低算法速度。
担心的时候是你注意到滞后的时候。即便如此,重构条件的顺序可能会在我要做的事情列表的底部。
答案 2 :(得分:1)
它会给你带来任何东西的门槛是,当你randomly pause多次,你在执行那个switch语句的过程中看到它,而不是完全相反。