Skip to content

Instantly share code, notes, and snippets.

@cheald
Created October 3, 2012 19:33
Show Gist options
  • Save cheald/3829274 to your computer and use it in GitHub Desktop.
Save cheald/3829274 to your computer and use it in GitHub Desktop.
var s = "translate(-320px, 0)";
var iter = 1000000;
var substr = function() {
for(var i = 0; i < iter; i++) {
parseInt(s.substring(s.indexOf('(')+1, s.indexOf(",")-2))
}
}
var substr_const = function() {
for(var i = 0; i < iter; i++) {
parseInt(s.substring(10, 14))
}
}
var regexp = function() {
var r = /[\d-]+/
for(var i = 0; i < iter; i++) {
parseInt(s.match(r)[0])
}
}
var regexp_thrash = function() {
for(var i = 0; i < iter; i++) {
parseInt(s.match(/[\d-]+/)[0])
}
}
var regexp_split = function() {
var r = /[\d-]+/
for(var i = 0; i < iter; i++) {
parseInt(s.substr(10).match(r)[0])
}
}
var regexp_g = function() {
var r = /[\d-]+/g
for(var i = 0; i < iter; i++) {
parseInt(s.match(r)[0])
}
}
var split = function() {
var r = /[(),]/
for(var i = 0; i < iter; i++) {
parseInt(s.split(r)[1])
}
}
var bench = function(f, n) {
var start = (new Date()).getTime()
f();
var delta = (new Date()).getTime() - start;
console.log( n, delta, delta / iter )
}
bench(substr, "substring")
bench(substr, "substr_const")
bench(regexp, "regexp")
bench(regexp_thrash, "regexp_thrash")
bench(regexp_g, "regexp_g")
bench(regexp_split, "regexp_split")
bench(split, "split")
substring 1038 0.001038
substr_const 1030 0.00103
regexp 662 0.000662
regexp_thrash 675 0.000675
regexp_g 912 0.000912
regexp_split 685 0.000685
split 829 0.000829
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment