Commit | Line | Data |
---|---|---|
896570f7 JB |
1 | /* eslint-disable no-unused-vars */ |
2 | import Benchmark from 'benny' | |
3 | import _ from 'lodash' | |
4 | import merge from 'just-merge' | |
5 | import deepMerge from 'deepmerge' | |
6 | import { generateRandomObject } from './benchmark-utils.mjs' | |
7 | ||
8 | const object = generateRandomObject() | |
9 | const objectToMerge = generateRandomObject() | |
10 | ||
11 | Benchmark.suite( | |
12 | `Deep merge two objects: object with ${ | |
13 | Object.keys(object).length | |
14 | } keys, object with ${Object.keys(objectToMerge).length} keys`, | |
15 | Benchmark.add('lodash merge', (obj = object) => { | |
16 | const objMerged = _.merge(obj, objectToMerge) | |
17 | }), | |
18 | Benchmark.add('just-merge', (obj = object) => { | |
19 | const objMerged = merge(obj, objectToMerge) | |
20 | }), | |
04fdaf45 | 21 | Benchmark.add('deepmerge', (obj = object) => { |
896570f7 JB |
22 | const objMerged = deepMerge(obj, objectToMerge) |
23 | }), | |
24 | Benchmark.cycle(), | |
25 | Benchmark.complete(), | |
26 | Benchmark.save({ | |
27 | file: 'deep-merge-object', | |
28 | format: 'json', | |
29 | details: true | |
30 | }), | |
31 | Benchmark.save({ | |
32 | file: 'deep-merge-object', | |
33 | format: 'chart.html', | |
34 | details: true | |
35 | }), | |
36 | Benchmark.save({ | |
37 | file: 'deep-merge-object', | |
38 | format: 'table.html', | |
39 | details: true | |
40 | }) | |
f913c68c | 41 | ).catch(err => { |
896570f7 JB |
42 | console.error(err) |
43 | }) |