Я сделаю некоторую работу над строкой, разделенной строкой. Какой из них будет быстрее, чтобы сначала разбить текст на String.split, а затем пройти по результирующему массиву или непосредственно просмотреть весь текст через reg exp и построить окончательный массив на пути?
Вопрос производительности: String.split, а затем пройдите по массиву или RegExp?
Ответ 1
Ну, лучший способ получить ответ - просто взять 2 минуты и написать цикл, который делает это в обоих направлениях тысячу раз и проверить firebug, чтобы узнать, какой из них быстрее;)
Мне пришлось оптимизировать много перетасовки строк во время работы над MXHR, и по моему опыту простые методы String значительно быстрее, чем RegExps в текущих браузерах. Используйте RegExps для кратчайших строк и сделайте все возможное, используя методы String.
Например, я использую это небольшое число в моем текущем коде:
var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');
Это уродливо, черт возьми, но верьте или нет, это значительно быстрее, чем эквивалентный RegExp при высокой нагрузке.
Ответ 2
Хотя это на 2½ года, возможно, это поможет пролить свет на вопрос для будущих зрителей: http://jsperf.com/split-join-vs-regex-replace (Включает результаты тестов для нескольких браузеров, а также сам функциональный тестовый код)
Ответ 3
Я ожидаю, что использование split() будет намного быстрее. Это зависит от многих особенностей, количества строк по длине, сложности регулярных выражений и т.д.