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

问题描述 投票:0回答:3

我将对行分隔的字符串做一些工作。哪个会更快,首先通过 String.split 分割文本,然后遍历结果数组,还是通过 reg exp 直接遍历整个文本并在途中构造最终数组?

javascript performance
3个回答
22
投票

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

在处理 MXHR 时,我必须优化大量字符串修改,根据我的经验,在当前浏览器中,纯字符串方法比 RegExp 快得多。在尽可能短的字符串上使用正则表达式,并使用字符串方法尽您所能。

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

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

它很难看,但不管你相信与否,它在高负载下比等效的 RegExp 快得多。


14
投票

虽然晚了 2.5 年,但希望这有助于为未来的观众阐明这一问题:https://jsperf.app/split-join-vs-regex-replace(包括多个浏览器的基准测试结果,如以及功能基准代码本身)


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.