Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
hash-sum vs object-hash big object
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Browser:
Chrome 131
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Sum
11597.1 Ops/sec
Object-hash
1177.3 Ops/sec
HTML Preparation code:
<script src="https://cdn.jsdelivr.net/npm/hash-sum@2.0.0/hash-sum.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/object-hash@2.0.3/dist/object_hash.min.js"></script>
Script Preparation code:
var context1 = { key1: "randomStringValue1", key2: 12345, key3: true, key4: { nestedKey1: "nestedString1", nestedKey2: 67890, nestedKey3: { deepNestedKey1: "deepNestedString1", deepNestedKey2: 999999, deepNestedKey3: [1, 2, 3, 4, 5], }, nestedKey4: false, }, key5: false, key6: 54321, key7: [10, 20, 30, { arrayNestedKey1: "arrayNestedString", arrayNestedKey2: 123 }], key8: true, key9: { anotherNestedKey1: "nestedAgain1", anotherNestedKey2: [100, 200, 300], anotherNestedKey3: { evenDeeperKey1: false, evenDeeperKey2: 7654321, evenDeeperKey3: ["a", "b", "c"], } }, key10: false, key11: "someOtherString1", key12: 222222, key13: { complexNestedKey1: { deeperNested1: "deeperValue1", deeperNested2: 1001, }, complexNestedKey2: { evenDeeperNestedKey1: true, evenDeeperNestedKey2: 5050, evenDeeperNestedKey3: ["x", "y", "z"], } }, key14: "anotherString2", key15: { mixedTypesKey1: "stringInNested", mixedTypesKey2: [101, 202, 303], mixedTypesKey3: { furtherNested1: true, furtherNested2: 98765, }, }, key16: 345678, key17: "anotherRandomString3", key18: true, key19: { level1Key1: false, level1Key2: { level2Key1: "nestedLevel2String", level2Key2: 4321, level2Key3: { level3Key1: true, level3Key2: ["nested", "deep", "value"], } } }, key20: false, key21: "yetAnotherString4", key22: 555555, key23: true, key24: { nestedKeyA: "stringInNestedA", nestedKeyB: { deeperKey1: false, deeperKey2: [111, 222, 333], deeperKey3: { deepestKey1: "deepestValue", deepestKey2: 123456, } } }, key25: false, key26: 12345678, key27: "newString6", key28: { nestedObject1: true, nestedObject2: 505050, nestedObject3: { deepKey1: false, deepKey2: "deepString2", deepKey3: { furtherDeepKey1: "deepestString", furtherDeepKey2: [1, 2, 3], } } }, key29: 8765432, key30: false, key31: { complexArrayKey1: [10, 20, 30, { nestedArrayKey1: "arrayInsideObject" }], complexArrayKey2: "randomStringInNestedArray" }, key32: 999999, key33: true, key34: { moreNestingKey1: "deeplyNestedString1", moreNestingKey2: 777777, moreNestingKey3: { evenMoreNesting1: ["nestedList1", "nestedList2"], evenMoreNesting2: { deepListKey1: "deepValueInList", deepListKey2: 888888, } } }, key35: false, key36: { multiLevelKey1: true, multiLevelKey2: { deeperKeyLevel1: 909090, deeperKeyLevel2: { evenDeeperKey1: false, evenDeeperKey2: [4444, 5555, 6666], } } }, key37: 123456789, key38: true, key39: { arrayWithNestedObjectKey: [400, 500, { objInArrayKey: "objInArray" }], anotherNestedObjectKey: { anotherDeepNestedKey1: true, anotherDeepNestedKey2: 1000001, } }, key40: false }; var context2 = { key1: "randomStringValue1", key2: 12345, key3: true, key4: { nestedKey1: "nestedString1", nestedKey2: 67890, nestedKey3: { deepNestedKey1: "deepNestedString1", deepNestedKey2: 999999, deepNestedKey3: [1, 2, 3, 4, 5], }, nestedKey4: false, }, key5: false, key6: 54321, key7: [10, 20, 30, { arrayNestedKey1: "arrayNestedString", arrayNestedKey2: 123 }], key8: true, key9: { anotherNestedKey1: "nestedAgain1", anotherNestedKey2: [100, 200, 300], anotherNestedKey3: { evenDeeperKey1: false, evenDeeperKey2: 7654321, evenDeeperKey3: ["a", "b", "c"], } }, key10: false, key11: "someOtherString1", key12: 222222, key13: { complexNestedKey1: { deeperNested1: "deeperValue1", deeperNested2: 1001, }, complexNestedKey2: { evenDeeperNestedKey1: true, evenDeeperNestedKey2: 5050, evenDeeperNestedKey3: ["x", "y", "z"], } }, key14: "anotherString2", key15: { mixedTypesKey1: "stringInNested", mixedTypesKey2: [101, 202, 303], mixedTypesKey3: { furtherNested1: true, furtherNested2: 98765, }, }, key16: 345678, key17: "anotherRandomString3", key18: true, key19: { level1Key1: false, level1Key2: { level2Key1: "nestedLevel2String", level2Key2: 4321, level2Key3: { level3Key1: true, level3Key2: ["nested", "deep", "value"], } } }, key20: false, key21: "yetAnotherString4", key22: 555555, key23: true, key24: { nestedKeyA: "stringInNestedA", nestedKeyB: { deeperKey1: false, deeperKey2: [111, 222, 333], deeperKey3: { deepestKey1: "deepestValue", deepestKey2: 123456, } } }, key25: false, key26: 12345678, key27: "newString6", key28: { nestedObject1: true, nestedObject2: 505050, nestedObject3: { deepKey1: false, deepKey2: "deepString2", deepKey3: { furtherDeepKey1: "deepestString", furtherDeepKey2: [1, 2, 3], } } }, key29: 8765432, key30: false, key31: { complexArrayKey1: [10, 20, 30, { nestedArrayKey1: "arrayInsideObject" }], complexArrayKey2: "randomStringInNestedArray" }, key32: 999999, key33: true, key34: { moreNestingKey1: "deeplyNestedString1", moreNestingKey2: 777777, moreNestingKey3: { evenMoreNesting1: ["nestedList1", "nestedList2"], evenMoreNesting2: { deepListKey1: "deepValueInList", deepListKey2: 888888, } } }, key35: false, key36: { multiLevelKey1: true, multiLevelKey2: { deeperKeyLevel1: 909090, deeperKeyLevel2: { evenDeeperKey1: false, evenDeeperKey2: [4444, 5555, 6666], } } }, key37: 123456789, key38: true, key39: { arrayWithNestedObjectKey: [400, 500, { objInArrayKey: "objInArray" }], anotherNestedObjectKey: { anotherDeepNestedKey1: true, anotherDeepNestedKey2: 1000001, } }, key40: false };
Tests:
Sum
sum(context1) === sum(context2)
Object-hash
objectHash(context1) === objectHash(context2)