replaceAll Test (v9)

Revision 9 of this benchmark created on


Description

Forcibly de-tuned the benchmark to make Chrome spit out a marginally representative result.

Preparation HTML

<script>
  var medium = new Array(100).join(" ' "),
      large = new Array(1000).join(" ' "),
      xtralg = new Array(10000).join(" ' ");
  
  function createSmall() {
   return " ' ' ' " + Math.random();
  }
  
  function createMedium() {
   return medium + Math.random();
  }
  
  function createLarge() {
   return large + Math.random();
  }
  
  function createXtralg() {
   return xtralg + Math.random();
  }
</script>

Setup

/**
     * ReplaceAll by Fagner Brack (MIT Licensed)
     * Replaces all occurrences of a substring in a string
     */
    String.prototype.replaceAll = function( token, newToken, ignoreCase ) {
        var _token;
        var str = this + "";
        var i = -1;
    
        if ( typeof token === "string" ) {
    
            if ( ignoreCase ) {
    
                _token = token;
    
                while( (
                    i = str.indexOf(
                        token, i >= 0 ? i + newToken.length : 0
                    ) ) !== -1
                ) {
                    str = str.substring( 0, i ) +
                        newToken +
                        str.substring( i + token.length );
                }
    
            } else {
                return this.split( token ).join( newToken );
            }
    
        }
    return str;
    };

Test runner

Ready to run.

Testing in
TestOps/sec
replaceAll small
window.test_str = createSmall().replaceAll("'", "\\'");
ready
replace small
window.test_str = createSmall().replace(/'/g, "\\'");
ready
replaceAll medium
window.test_str = createMedium().replaceAll("'", "\\'");
ready
replace medium
window.test_str = createMedium().replace(/'/g, "\\'");
ready
replaceAll large
window.test_str = createLarge().replaceAll("'", "\\'");
ready
replace large
window.test_str = createLarge().replace(/'/g, "\\'");
ready
replaceAll xtralg
window.test_str = createXtralg().replaceAll("'", "\\'");
ready
replace xtralg
window.test_str = createXtralg().replace(/'/g, "\\'");
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.