【问题标题】:fastest way to split a text file at spaces in Javascript在Javascript中以空格分割文本文件的最快方法
【发布时间】:2011-09-24 05:19:53
【问题描述】:

我正在考虑在浏览器中进行一些文本处理,并试图粗略了解我是受 CPU 限制还是 I/O 限制。为了测试等式的 CPU 方面的速度,我看到了在 Javascript 中拆分一段文本(~8.9MB - 这是古腾堡项目的 Sherlock Holmes 重复多次)的速度有多快一旦它在内存中。目前我只是在做:

pieces = theText.split(" ");

并执行 100 次并取平均值。在 2011 年的 Macbook Pro i5 上,Firefox 的平均拆分时间为 92.81 毫秒,Chrome 为 237.27 毫秒。所以 CPU 上 1000/92.81ms * 8.9MB = 95.8MBps,这可能比硬盘 I/O 快一点,但不会快很多。

所以我的问题实际上是三个部分:

  • 在进行简单的文本处理(例如,在空格、换行符等处分割等)时,是否有可以更快地替代 split() 的 Javascript?
  • 我在这里看到的 CPU 结果低迷可能是由于基本的字符串匹配/算法限制,还是 Javascript 执行速度太慢?
  • 如果您认为 Javascript 可能是限制因素,您能否在任何其他编程语言的可比较机器/可比较文本上展示明显更好的性能?

编辑:我也怀疑这可以通过 WebWorkers 加速,尽管目前主要对单线程方法感兴趣。

【问题讨论】:

  • 为了简单的性能测试(特别是在几个浏览器中比较几个场景),你可能想使用jsperf.com

标签: javascript regex performance split


【解决方案1】:

据我所知,使用 for 循环拆分是在 javascript 中进行简单文本处理的最快方法。它比正则表达式更快,这里是 jsperf http://jsperf.com/query-str-parsing-regex-vs-split/2的链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多