forked from fastify/fast-json-stringify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbench.js
113 lines (89 loc) · 2.18 KB
/
bench.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
'use strict'
const benchmark = require('benchmark')
const suite = new benchmark.Suite()
const schema = {
'title': 'Example Schema',
'type': 'object',
'properties': {
'firstName': {
'type': 'string'
},
'lastName': {
'type': 'string'
},
'age': {
'description': 'Age in years',
'type': 'integer',
'minimum': 0
}
}
}
const arraySchema = {
title: 'array schema',
type: 'array',
items: schema
}
const obj = {
firstName: 'Matteo',
lastName: 'Collina',
age: 32
}
const multiArray = []
const stringify = require('.')(schema)
const stringifyUgly = require('.')(schema, { uglify: true })
const stringifyArray = require('.')(arraySchema)
const stringifyArrayUgly = require('.')(arraySchema, { uglify: true })
const stringifyString = require('.')({ type: 'string' })
const stringifyStringUgly = require('.')({ type: 'string', uglify: true })
var str = ''
for (var i = 0; i < 10000; i++) {
str += i
if (i % 100 === 0) {
str += '"'
}
}
Number(str)
for (i = 0; i < 1000; i++) {
multiArray.push(obj)
}
suite.add('JSON.stringify array', function () {
JSON.stringify(multiArray)
})
suite.add('fast-json-stringify array', function () {
stringifyArray(multiArray)
})
suite.add('fast-json-stringify-uglified array', function () {
stringifyArrayUgly(multiArray)
})
suite.add('JSON.stringify long string', function () {
JSON.stringify(str)
})
suite.add('fast-json-stringify long string', function () {
stringifyString(str)
})
suite.add('fast-json-stringify-uglified long string', function () {
stringifyStringUgly(str)
})
suite.add('JSON.stringify short string', function () {
JSON.stringify('hello world')
})
suite.add('fast-json-stringify short string', function () {
stringifyString('hello world')
})
suite.add('fast-json-stringify-uglified short string', function () {
stringifyStringUgly('hello world')
})
suite.add('JSON.stringify obj', function () {
JSON.stringify(obj)
})
suite.add('fast-json-stringify obj', function () {
stringify(obj)
})
suite.add('fast-json-stringify-uglified obj', function () {
stringifyUgly(obj)
})
suite.on('cycle', cycle)
suite.run()
function cycle (e) {
console.log(e.target.toString())
}