1 /* eslint-disable no-unused-vars */
2 import Benchmark from 'benny'
3 import deepClone from 'deep-clone'
4 import clone from 'just-clone'
7 import { generateRandomObject } from './benchmark-utils.mjs'
9 const object = generateRandomObject()
12 `Deep clone object with ${Object.keys(object).length} keys`,
13 Benchmark.add('JSON stringify/parse', (obj = object) => {
14 const objCloned = JSON.parse(JSON.stringify(obj))
16 Benchmark.add('structuredClone', (obj = object) => {
17 const objCloned = structuredClone(obj)
19 Benchmark.add('lodash cloneDeep', (obj = object) => {
20 const objCloned = _.cloneDeep(obj)
22 Benchmark.add('just-clone', (obj = object) => {
23 const objCloned = clone(obj)
25 Benchmark.add('deep-clone', (obj = object) => {
26 const objCloned = deepClone(obj)
31 file: 'deep-clone-object',
36 file: 'deep-clone-object',
41 file: 'deep-clone-object',
45 ).catch(console.error)