build(deps-dev): apply updates
[benchmarks-js.git] / deep-clone-object.mjs
index bd8b3e6326a1df4db1f5671a6d1db2d27f8f4140..40b508da1505dd0b43984de6c62bff34f5b1442f 100644 (file)
@@ -1,44 +1,35 @@
 /* eslint-disable no-unused-vars */
-import Benchmark from 'benny'
-import _ from 'lodash'
-import clone from 'just-clone'
 import deepClone from 'deep-clone'
+import clone from 'just-clone'
+import _ from 'lodash'
+import { clone as rambdaClone } from 'rambda'
+import { bench, group, run } from 'tatami-ng'
+
 import { generateRandomObject } from './benchmark-utils.mjs'
 
 const object = generateRandomObject()
 
-Benchmark.suite(
-  `Deep clone object with ${Object.keys(object).length} keys`,
-  Benchmark.add('JSON stringify/parse', (obj = object) => {
-    const objCloned = JSON.parse(JSON.stringify(obj))
-  }),
-  Benchmark.add('structuredClone', (obj = object) => {
-    const objCloned = structuredClone(obj)
-  }),
-  Benchmark.add('lodash cloneDeep', (obj = object) => {
-    const objCloned = _.cloneDeep(obj)
-  }),
-  Benchmark.add('just-clone', (obj = object) => {
-    const objCloned = clone(obj)
-  }),
-  Benchmark.add('deep-clone', (obj = object) => {
-    const objCloned = deepClone(obj)
-  }),
-  Benchmark.cycle(),
-  Benchmark.complete(),
-  Benchmark.save({
-    file: 'deep-clone-object',
-    format: 'json',
-    details: true
-  }),
-  Benchmark.save({
-    file: 'deep-clone-object',
-    format: 'chart.html',
-    details: true
-  }),
-  Benchmark.save({
-    file: 'deep-clone-object',
-    format: 'table.html',
-    details: true
+group(`Deep clone object with ${Object.keys(object).length} keys`, () => {
+  bench('JSON stringify/parse', (obj = object) => {
+    JSON.parse(JSON.stringify(obj))
+  })
+  bench('structuredClone', (obj = object) => {
+    structuredClone(obj)
   })
-).catch(console.error)
+  bench('lodash cloneDeep', (obj = object) => {
+    _.cloneDeep(obj)
+  })
+  bench('rambda clone', (obj = object) => {
+    rambdaClone(obj)
+  })
+  bench('just-clone', (obj = object) => {
+    clone(obj)
+  })
+  bench('deep-clone', (obj = object) => {
+    deepClone(obj)
+  })
+})
+
+await run({
+  units: true
+})