Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
JSON.parse vs fast-json-parse
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Safari/537.36 OPR/60.3.3004.55692
Browser:
Opera 60
Operating system:
Linux
Device Platform:
Desktop
Date tested:
8 months ago
Benchmark engine:
Benchmark.js
JSON.parse valid
71K/s
fast-json-parse valid
50K/s
JSON.parse invalid
4K/s
JSON.parse combined
4K/s
fast-json-parse invalid
3K/s
fast-json-parse combined
3K/s
View exact numbers
Test name
Executions per second
✓
JSON.parse valid
70,622 Ops/sec
fast-json-parse valid
50,196 Ops/sec
JSON.parse invalid
3,951 Ops/sec
JSON.parse combined
3,553 Ops/sec
fast-json-parse invalid
3,131 Ops/sec
fast-json-parse combined
2,928 Ops/sec
Script Preparation code:
var valid = ['false', 'true', '2.5', '{"test": 1}']; var invalid = ['025', 'text', 'FALSE', 'TRUE', '{cat}']; var combined = [...valid, ...invalid]; // src from https://www.npmjs.com/package/fast-json-parse function Parse (data) { if (!(this instanceof Parse)) { return new Parse(data) } this.err = null this.value = null try { this.value = JSON.parse(data) } catch (err) { this.err = err } } var fastJsonParse = Parse;
Tests:
JSON.parse combined
combined.map((value) => { try { return JSON.parse(value); } catch(e) { return null; } })
JSON.parse invalid
invalid.map((value) => { try { return JSON.parse(value); } catch(e) { return null; } })
JSON.parse valid
valid.map((value) => { try { return JSON.parse(value); } catch(e) { return null; } })
fast-json-parse combined
combined.map((value) => { const result = fastJsonParse(value); return result.err ? null : result.value; })
fast-json-parse invalid
invalid.map((value) => { const result = fastJsonParse(value); return result.err ? null : result.value; })
fast-json-parse valid
valid.map((value) => { const result = fastJsonParse(value); return result.err ? null : result.value; })