Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
setting localStorage
testing efficiency of setting localStorage with and without conditional deep equals check
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:146.0) Gecko/20100101 Firefox/146.0
Browser:
Firefox 146
Operating system:
Mac OS X 10.15
Device Platform:
Desktop
Date tested:
4 months ago
Test name
Executions per second
setting localStorage unconditionally (simulating 1 React rerender after mount)
780763.5 Ops/sec
setting localStorage conditionally (simulating 1 React rerender after mount)
467960.9 Ops/sec
HTML Preparation code:
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>
Script Preparation code:
//constant window.itemOptions = { '1': '1', '2': '2', '3': '3', '4': '4', }; //example object window.stateObject = { item1: '00000', item2: '50', item3: [], item4: [window.itemOptions['1']], item5: [], }; localStorage.setItem('stateObject', JSON.stringify(window.stateObject));
Tests:
setting localStorage unconditionally (simulating 1 React rerender after mount)
localStorage.setItem('stateObject', JSON.stringify(window.stateObject)); localStorage.setItem('stateObject', JSON.stringify(window.stateObject));
setting localStorage conditionally (simulating 1 React rerender after mount)
const storedState = JSON.parse(localStorage.getItem('stateObject')); if (!_.isEqual(window.stateObject, storedState)) { localStorage.setItem('stateObject', JSON.stringify(window.stateObject)); } if (!_.isEqual(window.stateObject, storedState)) { localStorage.setItem('stateObject', JSON.stringify(window.stateObject)); }