Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Mappers
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Linux; arm_64; Android 14; ASUS_AI2202) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.26 YaBrowser/24.6.6.26.00 SA/3 Mobile Safari/537.36
Browser:
Yandex Browser 24
Operating system:
Android
Device Platform:
Mobile
Date tested:
one year ago
Test name
Executions per second
underscorePick1
1083.5 Ops/sec
underscorePick2
1366.4 Ops/sec
underscoreOmit1
539.7 Ops/sec
underscoreOmit2
597.1 Ops/sec
objectUnion
16494.4 Ops/sec
objectCreate
24595.7 Ops/sec
objectUpdate
7233.4 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js'></script>
Script Preparation code:
function randomString() { var length = Math.ceil(Math.random() * 100); var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var text = ''; for (var i=0; i < length; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)); } return text; } function createObject() { return { num1: Math.random(), num2: Math.random(), num3: Math.random(Math.random()), str1: randomString(), str2: randomString(), str3: randomString(), bool1: true, bool2: false, obj1: { prop1: randomString(), prop2: Math.random(), prop3: true, }, obj2: { prop1: randomString(), prop2: Math.random(), prop3: false, }, arr1: [1,2,3,4,5,6,7,8,9,0], arr2: [ randomString(), randomString(), randomString(), randomString(), randomString(), randomString(), randomString(), ], } } collection = Array(1000).fill(0).map(createObject);
Tests:
underscorePick1
const mapped = collection.map((data) => ({ ..._(data).pick('num3', 'str1', 'str2', 'bool2', 'arr1', 'obj1'), num1: data.num1 + 10, num2: data.num2 + 10, str3: data.str3 + '12345', bool1: false, obj2: { ...data.obj2, prop1: '1212212'}, arr2: [data.arr2[0], data.arr2[1], data.arr2[2]] }));
underscorePick2
const mapped = collection.map((data) => ({ ..._.pick(data, 'num3', 'str1', 'str2', 'bool2', 'arr1', 'obj1'), num1: data.num1 + 10, num2: data.num2 + 10, str3: data.str3 + '12345', bool1: false, obj2: { ...data.obj2, prop1: '1212212'}, arr2: [data.arr2[0], data.arr2[1], data.arr2[2]] }));
underscoreOmit1
const mapped = collection.map((data) => ({ ..._(data).omit('num1', 'num2', 'str3', 'bool1', 'obj2', 'arr2'), num1: data.num1 + 10, num2: data.num2 + 10, str3: data.str3 + '12345', bool1: false, obj2: { ...data.obj2, prop1: '1212212'}, arr2: [data.arr2[0], data.arr2[1], data.arr2[2]] }));
underscoreOmit2
const mapped = collection.map((data) => ({ ..._.omit(data, 'num1', 'num2', 'str3', 'bool1', 'obj2', 'arr2'), num1: data.num1 + 10, num2: data.num2 + 10, str3: data.str3 + '12345', bool1: false, obj2: { ...data.obj2, prop1: '1212212'}, arr2: [data.arr2[0], data.arr2[1], data.arr2[2]] }));
objectUnion
const mapped = collection.map((data) => ({ ...data, num1: data.num1 + 10, num2: data.num2 + 10, str3: data.str3 + '12345', bool1: false, obj2: { ...data.obj2, prop1: '1212212'}, arr2: [data.arr2[0], data.arr2[1], data.arr2[2]] }));
objectCreate
const mapped = collection.map((data) => ({ num1: data.num1 + 10, num2: data.num2 + 10, num3: data.num3, str1: data.str1, str2: data.str2, str3: data.str3 + '12345', bool1: false, bool2: data.bool2, obj1: data.obj1, obj2: { ...data.obj2, prop1: '1212212'}, arr1: data.arr1, arr2: [data.arr2[0], data.arr2[1], data.arr2[2]] }));
objectUpdate
const mapped = collection.map((data) => { data.num1 += 10; data.num2 += 10; data.str3 += '12345'; data.bool1 = false; data.obj2.prop1 = '1212212'; data.arr2.length = 3; return data; });