exec g vs. split + exec

Benchmark created on


Setup

var noTrailingFile = ''
    
    for ( var i = 0; i < 10000; i += 1 ) {
        noTrailingFile += 'foo bar\n'
    }
    
    var allTrailingFile = ''
    
    for ( var i = 0; i < 10000; i += 1 ) {
        allTrailingFile += 'foo bar   \n'
    }
    
    var oneTrailingFile = ''
    
    for ( var i = 0; i < 10000; i += 1 ) {
        oneTrailingFile += 'foo bar\n'
    }
    oneTrailingFile += 'foo bar   \n'
    
    var splitNo = noTrailingFile.split(/\r?\n/g)
    var splitAll = allTrailingFile.split(/\r?\n/g)
    var splitOne = oneTrailingFile.split(/\r?\n/g)

Test runner

Ready to run.

Testing in
TestOps/sec
exec g
var results = []

var re = /\s$/mg
var result

while ( ( result = re.exec( noTrailingFile ) ) !== null ) {
    results.push( result )
}

while ( ( result = re.exec( allTrailingFile ) ) !== null ) {
    results.push( result )
}

while ( ( result = re.exec( oneTrailingFile ) ) !== null ) {
    results.push( result )
}
ready
split exec
var results = []

var re = /\s$/

function checkTrailing( line, i ) {
    var match = re.exec( line )
    if ( match ) {
        results.push( match )
    }
}

splitNo.forEach( checkTrailing )
splitAll.forEach( checkTrailing )
splitOne.forEach( checkTrailing )
ready

Revisions

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