Подтвердить что ты не робот

Вопрос производительности: String.split, а затем пройдите по массиву или RegExp?

Я сделаю некоторую работу над строкой, разделенной строкой. Какой из них будет быстрее, чтобы сначала разбить текст на String.split, а затем пройти по результирующему массиву или непосредственно просмотреть весь текст через reg exp и построить окончательный массив на пути?

4b9b3361

Ответ 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() будет намного быстрее. Это зависит от многих особенностей, количества строк по длине, сложности регулярных выражений и т.д.