mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-10 02:47:50 +00:00
Add more benchmarks.
Former-commit-id: bddb4a26073ecd5aaf622f9726be940b6340cc07
This commit is contained in:
165
perf/perf.js
165
perf/perf.js
@@ -69,7 +69,8 @@
|
|||||||
_ = window._,
|
_ = window._,
|
||||||
lodash = window.lodash;
|
lodash = window.lodash;
|
||||||
|
|
||||||
var numbers = [],
|
var length = 20,
|
||||||
|
numbers = [],
|
||||||
object = {},
|
object = {},
|
||||||
fourNumbers = [5, 25, 10, 30],
|
fourNumbers = [5, 25, 10, 30],
|
||||||
nestedNumbers = [1, [2], [3, [[4]]]],
|
nestedNumbers = [1, [2], [3, [[4]]]],
|
||||||
@@ -91,13 +92,13 @@
|
|||||||
_boundCtor = _.bind(ctor, { 'name': 'moe' }),
|
_boundCtor = _.bind(ctor, { 'name': 'moe' }),
|
||||||
_boundPartial = _.bind(func, { 'name': 'moe' }, 'hi');
|
_boundPartial = _.bind(func, { 'name': 'moe' }, 'hi');
|
||||||
|
|
||||||
for (var index = 0; index < 20; index++) {
|
for (var index = 0; index < length; index++) {
|
||||||
numbers[index] = index;
|
numbers[index] = index;
|
||||||
object['key' + index] = index;
|
object['key' + index] = index;
|
||||||
}
|
}
|
||||||
|
|
||||||
var objects = lodash.map(numbers, function(n) {
|
var objects = lodash.map(numbers, function(num) {
|
||||||
return { 'num': n };
|
return { 'num': num };
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -168,7 +169,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('bound normal')
|
Benchmark.Suite('bound')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
lodashBoundNormal();
|
lodashBoundNormal();
|
||||||
})
|
})
|
||||||
@@ -202,31 +203,43 @@
|
|||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('each array')
|
Benchmark.Suite('each array')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
var timesTwo = [];
|
var result = [];
|
||||||
lodash.each(numbers, function(num) {
|
lodash.each(numbers, function(num) { result.push(num * 2); });
|
||||||
timesTwo.push(num * 2);
|
|
||||||
});
|
|
||||||
})
|
})
|
||||||
.add('Underscore', function() {
|
.add('Underscore', function() {
|
||||||
var timesTwo = [];
|
var result = [];
|
||||||
_.each(numbers, function(num) {
|
_.each(numbers, function(num) { result.push(num * 2); });
|
||||||
timesTwo.push(num * 2);
|
})
|
||||||
});
|
);
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('each array thisArg')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
var result = [];
|
||||||
|
lodash.each(numbers, function(num, index) {
|
||||||
|
result.push(num + this['key' + index]);
|
||||||
|
}, object);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
var result = [];
|
||||||
|
_.each(numbers, function(num, index) {
|
||||||
|
result.push(num + this['key' + index]);
|
||||||
|
}, object);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('each object')
|
Benchmark.Suite('each object')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
var timesTwo = [];
|
var result = [];
|
||||||
lodash.each(object, function(num) {
|
lodash.each(object, function(num) {
|
||||||
timesTwo.push(num * 2);
|
result.push(num * 2);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.add('Underscore', function() {
|
.add('Underscore', function() {
|
||||||
var timesTwo = [];
|
var result = [];
|
||||||
_.each(object, function(num) {
|
_.each(object, function(num) {
|
||||||
timesTwo.push(num * 2);
|
result.push(num * 2);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -286,10 +299,10 @@
|
|||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('groupBy callback')
|
Benchmark.Suite('groupBy callback')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
lodash.groupBy(numbers, function(num) { return Math.floor(num); });
|
lodash.groupBy(numbers, function(num) { return num >> 1; });
|
||||||
})
|
})
|
||||||
.add('Underscore', function() {
|
.add('Underscore', function() {
|
||||||
_.groupBy(numbers, function(num) { return Math.floor(num); });
|
_.groupBy(numbers, function(num) { return num >> 1; });
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -305,6 +318,28 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('indexOf')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.indexOf(numbers, 9);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.indexOf(numbers, 9);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('indexOf isSorted')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.indexOf(numbers, 9, true);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.indexOf(numbers, 9, true);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('intersection')
|
Benchmark.Suite('intersection')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
@@ -329,20 +364,46 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('lastIndexOf')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.lastIndexOf(numbers, 9);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.lastIndexOf(numbers, 9);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('map')
|
Benchmark.Suite('map')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
lodash.map(objects, function(obj) {
|
lodash.map(objects, function(value) {
|
||||||
return obj.num;
|
return value.num;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.add('Underscore', function() {
|
.add('Underscore', function() {
|
||||||
_.map(objects, function(obj) {
|
_.map(objects, function(value) {
|
||||||
return obj.num;
|
return value.num;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('map thisArg')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.map(objects, function(value, index) {
|
||||||
|
return this['key' + index] + value.num;
|
||||||
|
}, object);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.map(objects, function(value, index) {
|
||||||
|
return this['key' + index] + value.num;
|
||||||
|
}, object);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
suites.push(
|
suites.push(
|
||||||
@@ -393,6 +454,64 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('sortBy callback')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.sortBy(numbers, function(num) { return Math.sin(num); });
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.sortBy(numbers, function(num) { return Math.sin(num); });
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('sortBy callback thisArg')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.sortBy(numbers, function(num) { return this.sin(num); }, Math);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.sortBy(numbers, function(num) { return this.sin(num); }, Math);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('sortBy property name')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
lodash.sortBy(words, 'length');
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
_.sortBy(words, 'length');
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('times')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
var result = [];
|
||||||
|
lodash.times(length, function(n) { result.push(n); });
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
var result = [];
|
||||||
|
_.times(length, function(n) { result.push(n); });
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
suites.push(
|
||||||
|
Benchmark.Suite('times thisArg')
|
||||||
|
.add('Lo-Dash', function() {
|
||||||
|
var result = [];
|
||||||
|
lodash.times(length, function(n) { result.push(this.sin(n)); }, Math);
|
||||||
|
})
|
||||||
|
.add('Underscore', function() {
|
||||||
|
var result = [];
|
||||||
|
_.times(length, function(n) { result.push(this.sin(n)); }, Math);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
suites.push(
|
suites.push(
|
||||||
Benchmark.Suite('union')
|
Benchmark.Suite('union')
|
||||||
.add('Lo-Dash', function() {
|
.add('Lo-Dash', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user