Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Что быстрее match(regexp) VS ['string'].split()?! (https://javascript.ru/forum/events/50091-chto-bystree-match-regexp-vs-%5B%27string%27%5D-split.html)

Brook 11.09.2014 15:22

Что быстрее match(regexp) VS ['string'].split()?!
 
Доброго времени суток!
Заинтересовался этим вопросом и чесно не могу получить точного ответа - написал цикл на 1000 повторений - делаю по 10 прогонов и сравниваю общее среднее значение, но результаты раз на раз очень рпротиворечивы. Если уточнять то по моему "исследованию" лидирует match() 6 к 5 но тут разница всего в одно очко (6 раз сранивал общее среднее от каждого).
В общем если есть кто то поосведомленнее - пожулуйста помогите.
Заранее спасибо.:thanks:

ksa 11.09.2014 15:54

Цитата:

Сообщение от Brook
В общем если есть кто то поосведомленнее - пожулуйста помогите.

Вот тебе инструмент...

ksa 11.09.2014 16:01

var str='1 2 3 4 5 6';
var a=str.match(/\d+(?=\s)/g);

Результат (больше - лучше): ≈ 543 278 выполнений/1000 мс

var str='1 2 3 4 5 6';
var a=str.split(' ');

Результат (больше - лучше): ≈ 1 850 198 выполнений/1000 мс

Т.е. split() уделал match() в этом тесте...

Pavel M. 11.09.2014 20:05

если сделать и split c регуляркой str.split(/\s+/)
то у меня в FF split проиграл

ksa 11.09.2014 20:19

Т.о. нужно гибче подходить к проблеме. :D
Тестировать каждый "свой" вариант и оставлять более быстрый...

Brook 11.09.2014 22:21

Благодарю за помощь!

Brook 11.09.2014 22:24

Цитата:

Т.е. split() уделал match() в этом тесте...
както не думал посмотреть на проблему с этой стороны(колличество за период)... серьезно
обязательно запомню это

BETEPAH 11.09.2014 23:09

Ответы на подобные вопросы быстрее всего гуглить так "match vs split jsperf". Если же не найдете уже готового теста на jsperf.com, сделать там свой - дело пары минут.


Часовой пояс GMT +3, время: 00:51.