HTML Preparation code:
Script Preparation code:
Tests:

Historical Performance Data aggregated from 189 community runs

Desktop Results:
Chrome 163 runs
Native map(shallow clone)
8.9M/s
Object.assign shallow clone
6.0M/s
Native map deep slice at 0(turns objects into arrays)
5.9M/s
Native map deep slice(turns objects into arrays)
5.8M/s
Native JSON parse
542K/s
Map deep clone
432K/s
Lodash cloneDeep
415K/s
Recursive deep clone
391K/s

Fastest: Native map(shallow clone) (22.8x faster)

View exact numbers
  • Native map(shallow clone): 8,906,210 ops/sec
  • Object.assign shallow clone: 5,961,718 ops/sec
  • Native map deep slice at 0(turns objects into arrays): 5,864,530 ops/sec
  • Native map deep slice(turns objects into arrays): 5,832,828 ops/sec
  • Native JSON parse: 541,574 ops/sec
  • Map deep clone: 432,492 ops/sec
  • Lodash cloneDeep: 414,665 ops/sec
  • Recursive deep clone: 390,648 ops/sec
Firefox 19 runs
Native map(shallow clone)
35.1M/s
Object.assign shallow clone
34.2M/s
Native map deep slice(turns objects into arrays)
14.0M/s
Native map deep slice at 0(turns objects into arrays)
12.7M/s
Recursive deep clone
1.9M/s
Map deep clone
1.7M/s
Native JSON parse
442K/s
Lodash cloneDeep
268K/s

Fastest: Native map(shallow clone) (131.1x faster)

View exact numbers
  • Native map(shallow clone): 35,115,240 ops/sec
  • Object.assign shallow clone: 34,248,140 ops/sec
  • Native map deep slice(turns objects into arrays): 13,965,987 ops/sec
  • Native map deep slice at 0(turns objects into arrays): 12,680,318 ops/sec
  • Recursive deep clone: 1,915,546 ops/sec
  • Map deep clone: 1,697,078 ops/sec
  • Native JSON parse: 442,402 ops/sec
  • Lodash cloneDeep: 267,948 ops/sec
Mobile Results:
Chrome 7 runs
Native map(shallow clone)
7.7M/s
Native map deep slice(turns objects into arrays)
5.8M/s
Native map deep slice at 0(turns objects into arrays)
5.6M/s
Object.assign shallow clone
3.8M/s
Native JSON parse
531K/s
Map deep clone
451K/s
Recursive deep clone
394K/s
Lodash cloneDeep
341K/s

Fastest: Native map(shallow clone) (22.6x faster)

View exact numbers
  • Native map(shallow clone): 7,725,711 ops/sec
  • Native map deep slice(turns objects into arrays): 5,769,510 ops/sec
  • Native map deep slice at 0(turns objects into arrays): 5,583,068 ops/sec
  • Object.assign shallow clone: 3,765,644 ops/sec
  • Native JSON parse: 530,742 ops/sec
  • Map deep clone: 450,630 ops/sec
  • Recursive deep clone: 393,881 ops/sec
  • Lodash cloneDeep: 341,408 ops/sec

Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.

Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results
  • Test case name Result
    Lodash cloneDeep
    Native map deep slice(turns objects into arrays)
    Native JSON parse
    Native map deep slice at 0(turns objects into arrays)
    Native map(shallow clone)
    Recursive deep clone
    Map deep clone
    Object.assign shallow clone

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:151.0) Gecko/20100101 Firefox/151.0
Firefox 151 on Mac OS X 10.15
View result in a separate tab
Native map(shallow clone)
56.1M/s
Object.assign shallow clone
53.5M/s
Native map deep slice(turns objects into arrays)
28.0M/s
Native map deep slice at 0(turns objects into arrays)
25.1M/s
Recursive deep clone
4.5M/s
Map deep clone
4.3M/s
Native JSON parse
851K/s
Lodash cloneDeep
482K/s
View exact numbers
Test name Executions per second
Native map(shallow clone) 56,085,468 Ops/sec
Object.assign shallow clone 53,498,904 Ops/sec
Native map deep slice(turns objects into arrays) 28,019,550 Ops/sec
Native map deep slice at 0(turns objects into arrays) 25,103,878 Ops/sec
Recursive deep clone 4,457,585 Ops/sec
Map deep clone 4,344,996 Ops/sec
Native JSON parse 850,566 Ops/sec
Lodash cloneDeep 481,680 Ops/sec