'use strict' var benchmark = require('benchmark') var suite = new benchmark.Suite() var fs = require('fs') var myData = fs.readFileSync('./package.json') var Parse = require('./') var safe = require('json-parse-safe') var max = 100 suite.add('Parse class', function parseBench () { var parsed = new Parse(myData) if (parsed.err) { return } // add a loop to simulate some activity here for (var i = 0; i < max; i++) { var count = 0 var keys = Object.keys(parsed.value) for (var k = 0; k < keys.length; k++) { count++ } } }) suite.add('Parse wrapped', function parseBench () { var parsed = Parse(myData) if (parsed.err) { return } // add a loop to simulate some activity here for (var i = 0; i < max; i++) { var count = 0 var keys = Object.keys(parsed.value) for (var k = 0; k < keys.length; k++) { count++ } } }) suite.add('json-parse-safe', function parseBench () { var parsed = safe(myData) if (parsed.error) { return } // add a loop to simulate some activity here for (var i = 0; i < max; i++) { var count = 0 var keys = Object.keys(parsed.value) for (var k = 0; k < keys.length; k++) { count++ } } }) suite.add('try catch here', function tryCatchBench () { var data = null try { data = JSON.parse(myData) } catch (err) { return } // add a loop to simulate some activity here for (var i = 0; i < max; i++) { var count = 0 var keys = Object.keys(data) for (var k = 0; k < keys.length; k++) { count++ } } }) suite.on('complete', function print () { for (var i = 0; i < this.length; i++) { console.log(this[i].toString()) } console.log('Fastest is', this.filter('fastest').map('name')[0]) }) suite.run()