Является ли String.replace быстрее, чем String.split ... String.join в ActionScript 3? - PullRequest
6 голосов
/ 29 октября 2009

Быстрее ли использовать

myString.replace(/foo/g,"bar")

вместо

myString.split("foo").join("bar")

для длинных строк в ActionScript 3? Или это просто два сопоставимых метода достижения одного и того же результата?

Ответы [ 3 ]

10 голосов
/ 29 октября 2009

Я использовал gSkinners PerformaceTest , чтобы провести быстрый тест на это. Я думаю, что разница в лучшем случае минимальна. Я бы сказал, что replace() будет предпочтительным вариантом, потому что это то, чего вы хотите достичь. Использование split().join() не так ясно в своем намерении.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Using replace() (10000 iterations)
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
method...................................................ttl ms...avg ms
[function]                                                   57     0.01
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Using split().join() (10000 iterations)
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
method...................................................ttl ms...avg ms
[function]                                                   61     0.01
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
5 голосов
/ 29 октября 2009

Дэвид Р. цитирует блог, на который ссылается Диркгентли:

Конструкция string.split (). Join () остаток от AS2 дней, где там не было string.replace (). В AS3 это нет смысла использовать .split.join, только люди, которые не узнали новая функция замены была бы вероятна использовать его.

Кроме того, согласно этому блогу, разница во времени минимальна. Так что да, замена должна быть намного более чистым способом сделать это.

2 голосов
/ 29 октября 2009

Вот хороший блог для начала. Но вы действительно должны измерить, чтобы знать, что быстрее.

...