You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.7 KiB
85 lines
1.7 KiB
'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()
|
|
|