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