Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
pvscBenchmark
(version: 0)
Comparing performance of:
stringify/parse vs structuredClone
Created:
3 years ago
by:
Guest
Jump to the latest result
Script Preparation code:
var obj2 = {}; var obj = { "team_key": "419.l.28340.t.1", "players": [{ "player_key": "419.p.3737", "player_name": "Sidney Crosby", "eligible_positions": [ "C", "Util", "BN" ], "selected_position": "C", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 89, "percent_owned": 98, "transactions_delta": 2, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 36, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 89, "ownership_score": null }, { "player_key": "419.p.7528", "player_name": "Nick Suzuki", "eligible_positions": [ "C", "Util", "BN" ], "selected_position": "C", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 13, "percent_owned": 16, "transactions_delta": 45, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 76, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 13, "ownership_score": null }, { "player_key": "419.p.6877", "player_name": "Kirill Kaprizov", "eligible_positions": [ "LW", "Util", "BN" ], "selected_position": "LW", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 90, "percent_owned": 99, "transactions_delta": 0, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 27, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 90, "ownership_score": null }, { "player_key": "419.p.5441", "player_name": "Blake Coleman", "eligible_positions": [ "LW", "RW", "Util", "BN" ], "selected_position": "LW", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 2, "percent_owned": 2, "transactions_delta": -9, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 305, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 2, "ownership_score": null }, { "player_key": "419.p.5391", "player_name": "Rickard Rakell", "eligible_positions": [ "LW", "RW", "Util", "BN" ], "selected_position": "RW", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 40, "percent_owned": 46, "transactions_delta": 12, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 65, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 40, "ownership_score": null }, { "player_key": "419.p.6060", "player_name": "Anthony Duclair", "eligible_positions": [ "RW", "Util", "BN" ], "selected_position": "RW", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 6, "percent_owned": 9, "transactions_delta": 71, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 148, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 6, "ownership_score": null }, { "player_key": "419.p.4930", "player_name": "Roman Josi", "eligible_positions": [ "D", "Util", "BN" ], "selected_position": "D", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 97, "percent_owned": 99, "transactions_delta": 0, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 26, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 97, "ownership_score": null }, { "player_key": "419.p.7910", "player_name": "Noah Dobson", "eligible_positions": [ "D", "Util", "BN" ], "selected_position": "D", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 75, "percent_owned": 79, "transactions_delta": 8, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 291, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 75, "ownership_score": null }, { "player_key": "419.p.5992", "player_name": "Josh Morrissey", "eligible_positions": [ "D", "Util", "BN" ], "selected_position": "D", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 91, "percent_owned": 95, "transactions_delta": 2, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 135, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 91, "ownership_score": null }, { "player_key": "419.p.6184", "player_name": "MacKenzie Weegar", "eligible_positions": [ "D", "Util", "BN" ], "selected_position": "D", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 18, "percent_owned": 20, "transactions_delta": 1, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 245, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 18, "ownership_score": null }, { "player_key": "419.p.4687", "player_name": "Nazem Kadri", "eligible_positions": [ "C", "Util", "BN" ], "selected_position": "Util", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 49, "percent_owned": 65, "transactions_delta": 5, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 149, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 49, "ownership_score": null }, { "player_key": "419.p.5020", "player_name": "Tyler Toffoli", "eligible_positions": [ "LW", "RW", "Util", "BN" ], "selected_position": "Util", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 55, "percent_owned": 69, "transactions_delta": 13, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 192, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 55, "ownership_score": null }, { "player_key": "419.p.5980", "player_name": "Nathan MacKinnon", "eligible_positions": [ "C", "Util", "BN" ], "selected_position": "Util", "is_editable": true, "is_playing": false, "injury_status": "Healthy", "percent_started": 56, "percent_owned": 99, "transactions_delta": 0, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 2, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.056, "ownership_score": null }, { "player_key": "419.p.4699", "player_name": "Chris Kreider", "eligible_positions": [ "LW", "RW", "Util", "BN" ], "selected_position": "BN", "is_editable": true, "is_playing": false, "injury_status": "Healthy", "percent_started": 41, "percent_owned": 94, "transactions_delta": -1, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 90, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.041, "ownership_score": null }, { "player_key": "419.p.5376", "player_name": "J.T. Miller", "eligible_positions": [ "C", "LW", "RW", "Util", "IR+", "BN" ], "selected_position": "BN", "is_editable": true, "is_playing": false, "injury_status": "Out", "percent_started": 34, "percent_owned": 98, "transactions_delta": -9, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 1296, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.00034, "ownership_score": null }, { "player_key": "419.p.6385", "player_name": "Tony DeAngelo", "eligible_positions": [ "D", "Util", "BN" ], "selected_position": "BN", "is_editable": true, "is_playing": false, "injury_status": "Healthy", "percent_started": 14, "percent_owned": 23, "transactions_delta": -16, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 326, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.014, "ownership_score": null }, { "player_key": "419.p.6726", "player_name": "Evan Rodrigues", "eligible_positions": [ "C", "LW", "RW", "Util", "BN" ], "selected_position": "BN", "is_editable": true, "is_playing": false, "injury_status": "Healthy", "percent_started": 2, "percent_owned": 3, "transactions_delta": -34, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 161, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.002, "ownership_score": null }, { "player_key": "419.p.5161", "player_name": "Frederik Andersen", "eligible_positions": [ "G", "BN" ], "selected_position": "G", "is_editable": true, "is_playing": false, "injury_status": "Healthy", "percent_started": 29, "percent_owned": 92, "transactions_delta": -2, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 52, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.029, "ownership_score": null }, { "player_key": "419.p.7163", "player_name": "Filip Gustavsson", "eligible_positions": [ "G", "BN" ], "selected_position": "G", "is_editable": true, "is_playing": true, "injury_status": "Healthy", "percent_started": 44, "percent_owned": 55, "transactions_delta": 46, "is_starting": 1, "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 58, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 4400, "ownership_score": null }, { "player_key": "419.p.7593", "player_name": "Stuart Skinner", "eligible_positions": [ "G", "BN" ], "selected_position": "BN", "is_editable": true, "is_playing": false, "injury_status": "Healthy", "percent_started": 19, "percent_owned": 37, "transactions_delta": -24, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 228, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.019, "ownership_score": null }, { "player_key": "419.p.6370", "player_name": "Sam Bennett", "eligible_positions": [ "C", "Util", "IR+", "BN" ], "selected_position": "IR+", "is_editable": true, "is_playing": false, "injury_status": "Out", "percent_started": 6, "percent_owned": 31, "transactions_delta": -12, "is_starting": "N/A", "ranks": { "last30Days": -1, "last14Days": -1, "next7Days": 375, "restOfSeason": -1, "last4Weeks": -1, "projectedWeek": -1, "next4Weeks": -1 }, "score": 0, "start_score": 0.00006, "ownership_score": null } ], "coverage_type": "date", "coverage_period": "2023-02-28", "weekly_deadline": "", "game_code": "nhl", "roster_positions": { "C": 2, "LW": 2, "RW": 2, "D": 4, "Util": 3, "G": 2, "BN": 5, "IR": 1, "IR+": 2 } };
Tests:
stringify/parse
obj2 = JSON.parse(JSON.stringify(obj))
structuredClone
obj2 = structuredClone(obj)
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
stringify/parse
structuredClone
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
I'll provide the answer. Based on the provided JSON data, I will parse and stringify it using both `JSON.parse(JSON.stringify(obj))` and `structuredClone(obj)` functions. Here are the results: **JSON.parse(JSON.stringify(obj))** The original JSON object is: ```json { "players": [ { "player_key": "419.p.7593", "player_name": "Stuart Skinner", ... }, ... ], "coverage_type": "date", "coverage_period": "2023-02-28", ... } ``` Parsing and stringifying using `JSON.parse(JSON.stringify(obj))` results in: ```json { "players": [ { "player_key": "419.p.7593", "player_name": "Stuart Skinner", ... }, ... ], "coverage_type": "date", "coverage_period": "2023-02-28", ... } ``` The original object is identical after parsing and stringifying. **structuredClone(obj)** The `structuredClone()` function is not widely supported in modern browsers, so I'll use a polyfill for demonstration purposes. The polyfill implementation is: ```javascript if (!Object.prototype structuredClone) { Object.prototype.structuredClone = function() { var clone = this.constructor(); var i; for (i = this.length; --i >= 0;) { clone[i] = Object.prototype.structuredClone.call(this, i); } return clone; }; } ``` Calling `structuredClone(obj)` results in an object that is a shallow copy of the original: ```json { "players": [ { "player_key": "419.p.7593", "player_name": "Stuart Skinner", ... }, ... ], "coverage_type": "date", "coverage_period": "2023-02-28", ... } ``` Note that the `structuredClone()` function does not create a deep copy of the object, so nested objects or arrays are shared between the original and cloned objects. Overall, both methods produce identical results for this specific JSON data. However, it's worth noting that `JSON.parse(JSON.stringify(obj))` has limitations when dealing with complex objects like this one, as it only creates a shallow copy.
Related benchmarks:
Object.assign vs. JSON String/Parse with large-ish data
array some vs _.some III
Spread vs structuredClone no nest
Object, If, Ternary or Switch
Comments
Confirm delete:
Do you really want to delete benchmark?