Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2014, 15:22
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

Что быстрее match(regexp) VS ['string'].split()?!
Доброго времени суток!
Заинтересовался этим вопросом и чесно не могу получить точного ответа - написал цикл на 1000 повторений - делаю по 10 прогонов и сравниваю общее среднее значение, но результаты раз на раз очень рпротиворечивы. Если уточнять то по моему "исследованию" лидирует match() 6 к 5 но тут разница всего в одно очко (6 раз сранивал общее среднее от каждого).
В общем если есть кто то поосведомленнее - пожулуйста помогите.
Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2014, 15:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

Сообщение от Brook
В общем если есть кто то поосведомленнее - пожулуйста помогите.
Вот тебе инструмент...
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2014, 16:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

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() в этом тесте...
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2014, 20:05
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

если сделать и split c регуляркой str.split(/\s+/)
то у меня в FF split проиграл
Ответить с цитированием
  #5 (permalink)  
Старый 11.09.2014, 20:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

Т.о. нужно гибче подходить к проблеме.
Тестировать каждый "свой" вариант и оставлять более быстрый...
Ответить с цитированием
  #6 (permalink)  
Старый 11.09.2014, 22:21
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

Благодарю за помощь!
Ответить с цитированием
  #7 (permalink)  
Старый 11.09.2014, 22:24
Профессор
Отправить личное сообщение для Brook Посмотреть профиль Найти все сообщения от Brook
 
Регистрация: 13.04.2012
Сообщений: 210

Цитата:
Т.е. split() уделал match() в этом тесте...
както не думал посмотреть на проблему с этой стороны(колличество за период)... серьезно
обязательно запомню это
Ответить с цитированием
  #8 (permalink)  
Старый 11.09.2014, 23:09
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dart и typescrip. Что перспективнее ? eugenk Общие вопросы Javascript 4 13.01.2014 22:06
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
body.innerhtml - что за чертовщина? andy_quarry Ваши сайты и скрипты 6 19.07.2011 01:41
Поюзайте хомячка Nanto Ваши сайты и скрипты 30 06.06.2011 22:16
Браузер доказывает что не видит функцию SleepWalker Общие вопросы Javascript 7 17.06.2009 23:14