2009-06-08 33 views

回答

12

那么,得到答案的最好方法是花2分钟时间写出一个循环,它可以做到千次并检查萤火虫,看看哪一个是更快;)

我不得不优化大量的字符串工作在MXHR和我的经验,字符串方法明显比当前浏览器RegExps快。尽可能在最短的字符串上使用RegExps,并尽可能使用String方法做所有事情。

例如,我用这个小号码在我当前的代码:

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

这是丑陋的地狱,但信不信由你,它比在高负荷下的等效正则表达式显著更快。

1

我期望使用split()会快得多。这取决于很多细节,线数与长度,正则表达式的复杂度等。

+0

感谢您抽出宝贵的时间来回答。我也希望原生方法更快,但没有什么比IMO这个问题的经验更好。无论如何,谢谢=) – BYK 2009-06-08 20:17:46

+1

这答案是基于经验:)如dfltr说,你需要为你的具体情况进行实验。 – RedFilter 2009-06-08 20:50:45

9

虽然这两年半的时间晚了,希望这有助于一些线索就此事做任何未来的观众:http://jsperf.com/split-join-vs-regex-replace(包括对多个浏览器基准测试结果,以及功能性基准代码本身)