JS switch语句:最可能的案例优化是否重要?

时间:2011-10-26 01:39:35

标签: javascript performance optimization switch-statement

假设这个构造

switch(foo) {
    case "foo":
        // ...
    break;
    case "bar":
        // ...
    break;
    ...
    default:
        // ...
    break;
}

或类似的条件块(仅限通用逻辑运算符),实际上将最可能的条件放在第一位是否有意义,性能方面呢?

如果是这样,那么它开始有意义的门槛是什么,与“麻烦”相比,找出最可能的条件是什么?

3 个答案:

答案 0 :(得分:3)

这种微优化会带来比解决更多的问题。使用Javascript,由于JS引擎抽象的许多实现细节,因此评估此类构造相对较难。分析也不一定非常有见地。

JS是一种脚本语言,而不是C.让你的代码可读和简洁 - 顺便说一下,无论你写什么语言,这都应该是你的口头禅。

答案 1 :(得分:1)

答案是肯定的,这是有道理的。如果你知道有什么东西有更高的百分比是真的,为什么不把它放在第一个条件?我相信即使用脚本语言也能进行合理的编程。

只是因为它有意义,但并不是必要的。如果它的代码不经常运行,那么订单的重要程度可以忽略不计。但是,具有多个条件语句的大型循环中的代码可能会略微降低算法速度。

担心的时候是你注意到滞后的时候。即便如此,重构条件的顺序可能会在我要做的事情列表的底部。

答案 2 :(得分:1)

它会给你带来任何东西的门槛是,当你randomly pause多次,你在执行那个switch语句的过程中看到它,而不是完全相反。