본문 바로가기
IT

JS - replaceAll vs regex replace

by 내일은교양왕 2023. 7. 4.

replaceAll() 메소드와 regex 이용하여 replace() 중 어느것이 더 빠른지 알아보겠습니다.

 

테스트 전 확인

String.prototype.replaceAll = function(search, replacement) {
    var target = this;
    return target.replace(new RegExp(search, 'g'), replacement);
};

 

테스트

//regex replace
"this is it".replace(/ /g, "+");

//replaceAll
"this is it".replaceAll(" ", "+");

 

결과

replace regex가 3배정도 더 빠르게 나왔습니다.

이유는 예상으로 replaceAll 메소드 내부에서 RegExp instance를 생성해서 발생되는 것으로 추측합니다.

method executions per second
replace regex 12,350,890 Ops/sec
replaceAll 4,200,029 Ops/sec

 

참고

https://www.measurethat.net/Benchmarks/Show/2396/0/replaceall-vs-regex-replace

 

Benchmark: replaceAll vs regex replace - MeasureThat.net

 

www.measurethat.net