Skip to content

Instantly share code, notes, and snippets.

@caridy
Created December 10, 2012 19:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save caridy/4252712 to your computer and use it in GitHub Desktop.
Save caridy/4252712 to your computer and use it in GitHub Desktop.
Benchmark and Benchtable in Mojito
YUI.add('base-benchmark', function (Y) {
var suite = Y.BenchmarkSuite;
var MyBase20 = function() {
MyBase20.superclass.constructor.apply(this, arguments);
};
Y.extend(MyBase20, Y.Base);
MyBase20.NAME = 'myBase20';
MyBase20.ATTRS = {
attr1: {
value: "Foo",
setter: function(n) {
return n;
}
},
attr2: {
value: "Bar",
setter: function(n) {
return n;
}
},
attr3: {
value: true
},
attr4: {
value: 3
},
attr5: {
value: 3
},
attr6: {
value: false,
setter: function(lock) {
return lock;
}
},
attr7: {
value: 10
},
attr8: {
value: {}
},
attr9: {
value: []
},
attr10: {
value: "Foobar"
},
attr11: {
value: 25
},
attr12: {
value: null
},
attr13: {
value: false
},
attr14: {
value: false,
setter: function(val) {
return val;
}
},
attr15: {
value: null,
setter: function(val) {
return false;
}
},
attr16: {
value: ['default'],
getter: function() {
return false;
},
setter: function(g) {
return g;
}
},
attr17: {
value: null,
setter: function(g) {
return g;
}
},
attr18: {
writeOnce: true,
value: null
},
attr19: {
writeOnce: true,
value: null
},
attr20: {
writeOnce: true,
value: null
}
};
var MyBase10 = function() {
MyBase10.superclass.constructor.apply(this, arguments);
};
Y.extend(MyBase10, Y.Base);
MyBase10.NAME = 'myBase10';
MyBase10.ATTRS = {
attr1: {
value: "Foo"
},
attr2: {
value: "Bar"
},
attr3: {
value: true
},
attr4: {
value: 3
},
attr5: {
value: 3
},
attr6: {
value: false
},
attr7: {
value: 10
},
attr8: {
value: true
},
attr9: {
value: false
},
attr10: {
value: null
}
};
var MyBase = function() {
MyBase.superclass.constructor.apply(this, arguments);
};
MyBase.NAME = "myBase";
Y.extend(MyBase, Y.Base);
// MyBaseCore
var MyBaseCore20 = function() {
MyBaseCore20.superclass.constructor.apply(this, arguments);
};
Y.extend(MyBaseCore20, Y.BaseCore);
MyBaseCore20.NAME = 'myBase20';
MyBaseCore20.ATTRS = {
attr1: {
value: "Foo",
setter: function(n) {
return n;
}
},
attr2: {
value: "Bar",
setter: function(n) {
return n;
}
},
attr3: {
value: true
},
attr4: {
value: 3
},
attr5: {
value: 3
},
attr6: {
value: false,
setter: function(lock) {
return lock;
}
},
attr7: {
value: 10
},
attr8: {
value: {}
},
attr9: {
value: []
},
attr10: {
value: "Foobar"
},
attr11: {
value: 25
},
attr12: {
value: null
},
attr13: {
value: false
},
attr14: {
value: false,
setter: function(val) {
return val;
}
},
attr15: {
value: null,
setter: function(val) {
return false;
}
},
attr16: {
value: ['default'],
getter: function() {
return false;
},
setter: function(g) {
return g;
}
},
attr17: {
value: null,
setter: function(g) {
return g;
}
},
attr18: {
writeOnce: true,
value: null
},
attr19: {
writeOnce: true,
value: null
},
attr20: {
writeOnce: true,
value: null
}
};
var MyBaseCore10 = function() {
MyBaseCore10.superclass.constructor.apply(this, arguments);
};
Y.extend(MyBaseCore10, Y.BaseCore);
MyBaseCore10.NAME = 'myBaseCore10';
MyBaseCore10.ATTRS = {
attr1: {
value: "Foo"
},
attr2: {
value: "Bar"
},
attr3: {
value: true
},
attr4: {
value: 3
},
attr5: {
value: 3
},
attr6: {
value: false
},
attr7: {
value: 10
},
attr8: {
value: true
},
attr9: {
value: false
},
attr10: {
value: null
}
};
var MyBaseCore = function() {
MyBaseCore.superclass.constructor.apply(this, arguments);
};
MyBaseCore.NAME = "myBaseCore";
Y.extend(MyBaseCore, Y.BaseCore);
suite.add('Base', function () {
var b = new Y.Base();
});
suite.add('MyBase', function () {
var b = new MyBase();
});
suite.add('MyBase with 10 simple value attributes', function () {
var b = new MyBase10();
});
suite.add('MyBase with 20 varied attributes', function () {
var b = new MyBase20();
});
// BaseCore
suite.add('BaseCore', function () {
var b = new Y.BaseCore();
});
suite.add('MyBaseCore', function () {
var b = new MyBaseCore();
});
suite.add('MyBaseCore with 10 simple value attributes', function () {
var b = new MyBaseCore10();
});
suite.add('MyBaseCore with 20 varied attributes', function () {
var b = new MyBaseCore20();
});
}, '@VERSION@', {requires: ['base', 'mojito-benchmark']});
YUI.add('strings-concat-benchmark', function (Y) {
var suite = Y.BenchmarkSuite;
suite.add('concat', function () {
var b = 'foo' + 'bar';
});
suite.add('array join', function () {
var b = ['foo', 'bar'].join('');
});
}, '0.1', {requires: ['mojito-benchmark']});
YUI.add('strings-concat-benchtable', function (Y) {
var suite = Y.BenchtableSuite;
suite.addFunction('concat', function (a, b) {
var c = a + b;
});
suite.addFunction('array join', function (a, b) {
var c = [a, b].join('');
});
suite.addInput('small strings (3 characters)', ['foo', 'bar']);
suite.addInput('big strings (1025 characters)', [
'Fermentum tellus tellus felis vel congue. Nullam pede quam metus eget quam. Dui velit pede aliquet lorem varius sit commodo vitae. Erat adipiscing purus in mollis non amet magna ac. Enim laoreet ut sed libero gravida. Consectetuer sed porttitor. Sagittis tortor tellus. Consequat lacus ultricies. Consectetuer lacinia vel. Turpis massa ut. Laoreet sed suspendisse turpis mi orci est erat ipsum libero habitasse vel. Dui purus accumsan leo habitasse habitant dolor odio nec praesent urna interdum. Aliquam massa placerat. Dolorum dui nec volutpat wisi arcu. Sit suspendisse pretium. Tempus sed ac. Neque massa est lacus nulla nulla suscipit augue ac. Fusce laoreet ridiculus suscipit augue vel at sapien wisi quia phasellus elit ac nunc nibh dolor accumsan morbi ut semper eget. Dui sagittis mattis a posuere volutpat. Vel curabitur lacinia. Dapibus rutrum et. Eget pellentesque integer. Fermentum tincidunt sodales molestie leo mollis. Convallis dolor vel nec erat urna id nostra urna. Convallis quisque lacus. Metus eu vulputate. Nec aenean netus vestibulum convallis volutpat. A ut mattis molestie condimentum egestas. Praesent sed consequat vel enim dui. Molestie libero interdum amet metus sociis. Maecenas nulla adipiscing qui scelerisque magna. Aliquam pede elit. Sed cursus mattis ad vitae sociosqu eros viverra nam viverra ligula magna. Vehicula senectus nisl cursus consequat nunc nulla elit fusce. Quis luctus vulputate. Mauris blandit excepteur wisi a et. Faucibus bibendum nam pulvinar massa porta quisque hendrerit mauris. Libero dui blandit. Eu condimentum lorem. Leo aliquam sit nec dis libero. Accumsan et non. Ipsum rhoncus eget. Vehicula tempor id pede tincidunt dolor. A ligula litora eget vestibulum dolor lobortis suspendisse tellus. Eros ipsum mauris. Porta mus a. Quisque varius nibh. Ac in sed magna sed suspendisse. Aliquam vel at mattis nulla ante pharetra tincidunt nonummy. Aliquam venenatis donec ut vitae parturient molestie viverra turpis wisi nunc at semper aliquam quam.',
'magna imperdiet eu nec amet eleifend est pede felis phasellus donec scelerisque posuere vitae accumsan donec varius lacinia tortor neque nonummy ultricies elit venenatis vel felis vel molestie in sed placerat et erat turpis mauris massa bibendum libero elit a quis praesent maecenas quis ac vestibulum vel nec vestibulum nec sed fusce a velit metus amet nulla elementum urna tincidunt nulla quam dolores enim malesuada vel turpis feugiat non eu ultrices in duis sed eleifend et pellentesque volutpat sed fusce ac fringilla auctor ligula dolor vel dapibus sem elementum nec consequat venenatis viverra suspendisse rhoncus facilisis lectus nonummy et mi felis tortor phasellus tempor magna rhoncus volutpat litora eget et pellentesque egestas nam elementum felis felis purus malesuada dolor vehicula convallis in feugiat vestibulum libero amet enim scelerisque in turpis velit lectus amet justo eleifend cupiditate cum nunc lobortis ligula fringilla imperdiet non donec suspendisse felis vivamus volutpat sit aliquam vestibulum interdum metus etiam porttitor non felis id et vivamus suscipit ipsum sociis sed ullamcorper mauris eu elit quis quam fermentum sed ridiculus euismod semper est in tortor fringilla amet orci quis orci imperdiet ac tristique ultrices vitae elementum pellentesque amet sagittis amet posuere est felis amet erat amet tincidunt auctor purus dolor curabitur a nunc sollicitudin justo sed integer massa libero lobortis interdum feugiat elit montes faucibus ut lacus amet massa taciti iaculis tortor purus fusce lacinia tempus lectus mauris metus nullam inceptos amet integer venenatis tempor dui neque eget ultrices pede vitae ut porta vestibulum viverra in aptent sed magna dui volutpat ante vel litora mollis at facilis sem ipsum orci ipsum elit scelerisque est pede sed id nulla vel magna libero libero rutrum tincidunt enim sed sodales arcu aenean nibh massa fames et netus nec gravida sit a elit tellus ornare pellentesque enim vel odio eu sit a nec ante vitae pellentesque erat eu.'
]);
}, '0.1', {requires: ['mojito-benchmark']});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment