HTML Preparation code:
AخA
 
1
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>
Script Preparation code:
x
 
// 1 level deep
window.foo1 = {
    a: 1,
    b: 2,
    c: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2
        }
    },
    d: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        }
    },
    e: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        },
        d: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2,
                c: {
                    a: 1,
                    b: 2
                }
            }
        }
    }
};
window.bar1 = {
    a: 1,
    b: 3,
    c: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2
        }
    },
    d: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        }
    },
    e: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        },
        d: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2,
                c: {
                    a: 1,
                    b: 2
                }
            }
        }
    }
};
// 2 levels deep
window.foo2 = {
    a: 1,
    b: 2,
    c: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2
        }
    },
    d: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        }
    },
    e: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        },
        d: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2,
                c: {
                    a: 1,
                    b: 2
                }
            }
        }
    }
};
window.bar2 = {
    a: 1,
    b: 2,
    c: {
        a: 1,
        b: 3,
        c: {
            a: 1,
            b: 2
        }
    },
    d: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        }
    },
    e: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        },
        d: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2,
                c: {
                    a: 1,
                    b: 2
                }
            }
        }
    }
};
// deepest levels deep
window.foo3 = {
    a: 1,
    b: 2,
    c: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2
        }
    },
    d: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        }
    },
    e: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        },
        d: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2,
                c: {
                    a: 1,
                    b: 2
                }
            }
        }
    }
};
window.bar3 = {
    a: 1,
    b: 2,
    c: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2
        }
    },
    d: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        }
    },
    e: {
        a: 1,
        b: 2,
        c: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2
            }
        },
        d: {
            a: 1,
            b: 2,
            c: {
                a: 1,
                b: 2,
                c: {
                    a: 1,
                    b: 3
                }
            }
        }
    }
};
Tests:
  • _.isEqual Level 1

     
    _.isEqual(window.foo1, window.bar1)
  • JSON.stringify Level 1

     
    JSON.stringify(window.foo1) === JSON.stringify(window.bar1);
  • _.isEqual Level 2

     
    _.isEqual(window.foo2, window.bar2)
  • JSON.stringify Level 2

     
    JSON.stringify(window.foo2) === JSON.stringify(window.bar2);
  • _.isEqual Level 3

     
    _.isEqual(window.foo3, window.bar3)
  • JSON.stringify Deepest Level

     
    JSON.stringify(window.foo3) === JSON.stringify(window.bar3);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    _.isEqual Level 1
    JSON.stringify Level 1
    _.isEqual Level 2
    JSON.stringify Level 2
    _.isEqual Level 3
    JSON.stringify Deepest Level

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
Chrome 104 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
_.isEqual Level 1 1239845.4 Ops/sec
JSON.stringify Level 1 381515.3 Ops/sec
_.isEqual Level 2 884229.8 Ops/sec
JSON.stringify Level 2 382614.7 Ops/sec
_.isEqual Level 3 173503.1 Ops/sec
JSON.stringify Deepest Level 150665.4 Ops/sec