Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Looping Frozen object: Object Freeze vs Deep Freeze vs Without Object Freeze vs
(version: 1)
Comparing performance of:
Loop Frozen Object vs Loop Deep-Frozen Object vs Loop Non-Frozen Object
Created:
one year ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
const birdSpecies = { forest: { species: [ { name: "Northern Cardinal", physicalCharacteristics: { color: "Red", size: "Medium", beakType: "Conical" }, diet: { primary: "Seeds", secondary: "Fruits" }, habitat: "Woodlands and forests" }, { name: "Woodpecker", physicalCharacteristics: { color: "Black, White, and Red", size: "Medium", beakType: "Chisel-shaped" }, diet: { primary: "Insects", secondary: "Tree sap" }, habitat: "Wooded areas" } ] }, desert: { species: [ { name: "Roadrunner", physicalCharacteristics: { color: "Brown and White", size: "Medium", beakType: "Long and Slim" }, diet: { primary: "Insects", secondary: "Small reptiles" }, habitat: "Desert and arid regions" }, { name: "Cactus Wren", physicalCharacteristics: { color: "Brown with streaks", size: "Small", beakType: "Curved" }, diet: { primary: "Insects", secondary: "Seeds" }, habitat: "Cacti and desert shrubs" } ] }, wetlands: { species: [ { name: "Great Blue Heron", physicalCharacteristics: { color: "Blue-gray", size: "Large", beakType: "Long and Sharp" }, diet: { primary: "Fish", secondary: "Amphibians" }, habitat: "Wetlands and marshes" }, { name: "American Coot", physicalCharacteristics: { color: "Dark gray with white bill", size: "Medium", beakType: "Flat and short" }, diet: { primary: "Aquatic plants", secondary: "Small invertebrates" }, habitat: "Lakes and wetlands" } ] } } const deepFreeze = obj => { for (const key in obj) { if (obj.hasOwnProperty(key) && typeof obj[key] === "object" && obj[key] !== null) { deepFreeze(obj[key]) } } return Object.freeze(obj) } const frozenObject = Object.freeze(structuredClone(birdSpecies)) const copy = structuredClone(birdSpecies) const deepFrozenObject = deepFreeze(copy) const nonFrozenObject = structuredClone(birdSpecies)
Tests:
Loop Frozen Object
for (const [habitat, data] of Object.entries(frozenObject)) { console.log(`Habitat: ${habitat}`) for (const bird of data.species) { console.log(` Name: ${bird.name}`) console.log(` Physical Characteristics:`) for (const [key, value] of Object.entries(bird.physicalCharacteristics)) { console.log(` ${key}: ${value}`) } console.log(` Diet:`) for (const [key, value] of Object.entries(bird.diet)) { console.log(` ${key}: ${value}`) } console.log(` Habitat: ${bird.habitat}`) } }
Loop Deep-Frozen Object
for (const [habitat, data] of Object.entries(deepFrozenObject)) { console.log(`Habitat: ${habitat}`) for (const bird of data.species) { console.log(` Name: ${bird.name}`) console.log(` Physical Characteristics:`) for (const [key, value] of Object.entries(bird.physicalCharacteristics)) { console.log(` ${key}: ${value}`) } console.log(` Diet:`) for (const [key, value] of Object.entries(bird.diet)) { console.log(` ${key}: ${value}`) } console.log(` Habitat: ${bird.habitat}`) } }
Loop Non-Frozen Object
for (const [habitat, data] of Object.entries(nonFrozenObject)) { console.log(`Habitat: ${habitat}`) for (const bird of data.species) { console.log(` Name: ${bird.name}`) console.log(` Physical Characteristics:`) for (const [key, value] of Object.entries(bird.physicalCharacteristics)) { console.log(` ${key}: ${value}`) } console.log(` Diet:`) for (const [key, value] of Object.entries(bird.diet)) { console.log(` ${key}: ${value}`) } console.log(` Habitat: ${bird.habitat}`) } }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (3)
Previous results
Fork
Test case name
Result
Loop Frozen Object
Loop Deep-Frozen Object
Loop Non-Frozen Object
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
one year ago
)
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Browser/OS:
Chrome 125 on Linux
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Loop Frozen Object
1145.1 Ops/sec
Loop Deep-Frozen Object
1083.7 Ops/sec
Loop Non-Frozen Object
1022.0 Ops/sec
Related benchmarks:
for each for of christian
For Loop vs While Loop vs indexOf
AOC Day 7
Filter vs slice - neokore
Group by
inherit vs copy
Searching in an array of objects
makes fast
Looping Frozen object: Object Freeze vs Without Object Freeze
Comments
Confirm delete:
Do you really want to delete benchmark?