我會在一行分隔字符串上做一些工作。哪一個會更快,首先通過String.split分割文本,然後在結果數組上行走,或者直接通過reg exp遍歷整個文本並在途中構建最終數組?性能問題:String.split然後走在數組或RegExp上?
11
A
回答
12
那麼,得到答案的最好方法是花2分鐘時間寫出一個循環,它可以做到千次並檢查螢火蟲,看看哪一個是更快;)
我不得不優化大量的字符串工作在MXHR和我的經驗,字符串方法明顯比當前瀏覽器RegExps快。儘可能在最短的字符串上使用RegExps,並儘可能使用String方法做所有事情。
例如,我用這個小號碼在我當前的代碼:
var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');
這是醜陋的地獄,但信不信由你,它比在高負荷下的等效正則表達式顯著更快。
1
我期望使用split()會快得多。這取決於很多細節,線數與長度,正則表達式的複雜度等。
9
雖然這兩年半的時間晚了,希望這有助於一些線索就此事做任何未來的觀衆:http://jsperf.com/split-join-vs-regex-replace(包括對多個瀏覽器基準測試結果,以及功能性基準代碼本身)
相關問題
- 1. 問題與String.split
- 2. string.split問題
- 3. 組性能問題
- 4. 問題與.NET String.Split
- 5. String.Split效率問題
- 6. 如何在Velocity中使用string.split之後訪問數組元素?
- 7. 從屬性走到CustomAttributeData或向後
- 8. Flash RegExp問題
- 9. Javascript RegExp問題?
- 10. JavaScript RegExp問題
- 11. GetAll或GetList函數和性能問題
- 12. 數組序列化性能問題
- 13. 分裂;然後on =,有問題使用String.Split,所需的正則表達式
- 14. Vista上的性能計數器問題
- 15. 問題RegExp和IE
- 16. 驗證RegExp問題
- 17. RegExp逃脫問題?
- 18. Postgres在過濾器或集合上的AWS性能問題
- 19. 在xp性能問題上的mysql
- 20. PublisherAdView在Android上的loadAd性能問題
- 21. 然後按順序計數並選擇Max by group,性能問題
- 22. find_by_sql或數組問題
- 23. 按值排序多維數組 - 可能性然後平穩
- 24. 數據庫性能問題
- 25. 數據庫性能問題
- 26. 數據流性能問題
- 27. silverlight數學性能問題
- 28. 數組越界使用string.split
- 29. 性能問題:使用「link_to」或「a」?
- 30. NHibernate或SQL Server 2008性能問題
感謝您抽出寶貴的時間來回答。我也希望原生方法更快,但沒有什麼比IMO這個問題的經驗更好。無論如何,謝謝=) – BYK 2009-06-08 20:17:46
這答案是基於經驗:)如dfltr說,你需要爲你的具體情況進行實驗。 – RedFilter 2009-06-08 20:50:45