代码之家  ›  专栏  ›  技术社区  ›  BYK

性能问题:String.split然后在数组上漫游,还是RegExp?

  •  12
  • BYK  · 技术社区  · 17 年前

    3 回复  |  直到 17 年前
        1
  •  20
  •   Micah Snyder    17 年前

    好的,得到答案的最好方法是只花2分钟,写一个循环,这个循环可以双向执行上千次,然后检查firebug,看看哪个更快;)

    在使用MXHR时,我不得不优化大量字符串搜索,根据我的经验,普通字符串方法比当前浏览器中的regexp快得多。在尽可能短的字符串上使用regexp,并尽可能使用字符串方法。

    例如,我在当前代码中使用了这个小数字:

    var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');
    

    它非常丑陋,但信不信由你,它在高负载下比同等的RegExp快得多。

        2
  •  16
  •   Andrew Odri    14 年前

    虽然这已经晚了2年,但希望这有助于为未来的观众揭示这一问题: http://jsperf.com/split-join-vs-regex-replace

        3
  •  2
  •   D'Arcy Rittich    17 年前

    我希望使用split()会快得多。它取决于许多细节、行数与长度、正则表达式的复杂性等。