Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
lodash clonedeep vs json.parse(stringify()) vs recursivecopy (Medium Sized Object)
(version: 0)
Comparing performance of:
Lodash CloneDeep vs Json Clone vs recursiveDeepCopy
Created:
3 years ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
var MyObject = { "label": "Project Active ; IX001-01 Land Procurement", "forms": [ { "actions": null, "active": false, "controls": [ { "disabled": true, "display": "00e3755a-af67-4e92-9011-de0bd2522d9d", "input": true, "label": "UUID", "name": "_uuid", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "00e3755a-af67-4e92-9011-de0bd2522d9d" }, { "controls": [ { "display": 45, "input": true, "label": "_id", "name": "_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 45 }, { "display": 3, "input": true, "label": "Workflow ID", "name": "lookup_workflow_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 3 }, { "display": "N/A", "input": true, "label": "Project Stage", "name": "stage_name", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "N/A" }, { "input": true, "label": "Stage Name ID", "name": "lookup_stage_name_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden" }, { "controls": [ { "controls": [ { "display": "IX001-01 Land Procurement", "input": true, "label": "Project Name", "name": "project_name", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please enter a Project Name", "trigger": "blur" } ], "table": "project", "type": "text", "value": "IX001-01 Land Procurement" }, { "display": "IX001-01", "input": true, "label": "Project Number", "name": "project_number", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please enter a Project Number", "trigger": "blur" } ], "table": "project", "type": "text", "value": "IX001-01" }, { "data": [ { "id": 1, "raw_value": "EN - Energy", "value": "EN - Energy", "meta": null, "deleted": false, "system": false }, { "id": 2, "raw_value": "FM - Facilities Maintenance", "value": "FM - Facilities Maintenance", "meta": null, "deleted": false, "system": false }, { "id": 3, "raw_value": "PC - Parks and Cemeteries", "value": "PC - Parks and Cemeteries", "meta": null, "deleted": false, "system": false }, { "id": 4, "raw_value": "RS - Roads \u0026 Stormwater", "value": "RS - Roads \u0026 Stormwater", "meta": null, "deleted": false, "system": false }, { "id": 5, "raw_value": "SW - Solid Waste", "value": "SW - Solid Waste", "meta": null, "deleted": false, "system": false }, { "id": 6, "raw_value": "TL - Traffic \u0026 Law Enforcement", "value": "TL - Traffic \u0026 Law Enforcement", "meta": null, "deleted": false, "system": false }, { "id": 7, "raw_value": "WS - Water \u0026 Sanitation", "value": "WS - Water \u0026 Sanitation", "meta": null, "deleted": false, "system": false } ], "datasource": "department", "datasource_type": "lookup", "display": "RS - Roads \u0026 Stormwater", "input": true, "label": "Department", "name": "lookup_department_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please select a Department", "trigger": "blur" } ], "table": "project", "type": "dropdown", "value": 4 }, { "datasource": "pc/query/programme_from_department", "datasource_type": "table_with_uuid", "display": "IDP 2023/24", "early_fetch": true, "input": true, "label": "Programme", "name": "programme_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "queries": [ { "param_name": "lookup_department_id", "type": "global", "name": "lookup_department_id" }, { "param_name": "value", "type": "param", "name": "queryString" } ], "table": "project", "type": "query", "value": 4 }, { "data": [ { "id": 23, "raw_value": "Cleaning", "value": "Cleaning", "meta": null, "deleted": false, "system": false }, { "id": 54, "raw_value": "Construction", "value": "Construction", "meta": null, "deleted": false, "system": false }, { "id": 22, "raw_value": "Demolitions", "value": "Demolitions", "meta": {}, "deleted": false, "system": false }, { "id": 34, "raw_value": "Evolve ", "value": "Evolve ", "meta": null, "deleted": false, "system": false }, { "id": 53, "raw_value": "Procurement", "value": "Procurement", "meta": null, "deleted": false, "system": false }, { "id": 56, "raw_value": "Refurbishment", "value": "Refurbishment", "meta": null, "deleted": false, "system": false }, { "id": 35, "raw_value": "Release", "value": "Release", "meta": null, "deleted": false, "system": false }, { "id": 55, "raw_value": "Repair", "value": "Repair", "meta": null, "deleted": false, "system": false } ], "datasource": "action_required", "datasource_type": "lookup", "display": "Release", "input": true, "label": "Action Required", "name": "lookup_action_required_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please select a action required", "trigger": "blur" } ], "table": "project", "type": "dropdown", "value": 35 }, { "data": [ { "id": 8, "raw_value": "Capex", "value": "Capex", "meta": {}, "deleted": false, "system": false }, { "id": 32, "raw_value": "Catch Em All", "value": "Catch Em All", "meta": null, "deleted": false, "system": false }, { "id": 24, "raw_value": "Cleaning Contract", "value": "Cleaning Contract", "meta": null, "deleted": false, "system": false }, { "id": 9, "raw_value": "Opex", "value": "Opex", "meta": {}, "deleted": false, "system": false } ], "datasource": "project_type", "datasource_type": "lookup", "display": "Capex", "input": true, "label": "Project Type", "name": "lookup_project_type_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please select a Project Type", "trigger": "blur" } ], "table": "project", "type": "dropdown", "value": 8 }, { "data": [ { "id": 15, "raw_value": "Multi Year", "value": "Multi Year", "meta": null, "deleted": false, "system": false }, { "id": 14, "raw_value": "Single Year", "value": "Single Year", "meta": null, "deleted": false, "system": false } ], "datasource": "project_duration", "datasource_type": "lookup", "display": "Multi Year", "input": true, "label": "Project Duration", "name": "lookup_project_duration_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "dropdown", "value": 15 }, { "data": [ { "id": 16, "raw_value": "2021/22", "value": "2021/22", "meta": { "end_date": "2022-03-31", "start_date": "2021-04-01", "year": "2022" }, "deleted": false, "system": false }, { "id": 17, "raw_value": "2022/23", "value": "2022/23", "meta": { "end_date": "2023-03-31", "start_date": "2022-04-01", "year": "2023" }, "deleted": false, "system": false }, { "id": 39, "raw_value": "2023/24", "value": "2023/24", "meta": { "end_date": "2023-07-01", "start_date": "2024-06-30", "year": "2024" }, "deleted": false, "system": false } ], "datasource": "financial_year", "datasource_type": "lookup", "display": "2023/24", "input": true, "label": "Financial Year", "name": "lookup_financial_year_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please select a financial year", "trigger": "blur" } ], "table": "project", "type": "dropdown", "value": 39 }, { "disabled": true, "display": 1680480000, "input": true, "label": "Project Start Date", "name": "start_date", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "date", "value": 1680480000 }, { "disabled": true, "display": 1742428800, "input": true, "label": "Project End Date", "name": "end_date", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "date", "value": 1742428800 }, { "display": "Procure Land for Road", "input": true, "label": "Full Project Description", "name": "project_description", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": true, "message": "Please enter a full project description", "trigger": "blur" } ], "table": "project", "type": "largetext", "value": "Procure Land for Road" } ], "label": "Project Details", "name": "project_details", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "card" } ], "label": "Cards", "name": "Cards", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "cards" } ], "label": "General", "name": "General", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "tab" }, { "controls": [ { "controls": [ { "display": "Land Identification\nValuation\nOffer to Purchase\nRegistration", "input": true, "label": "Scope Of Works", "name": "scope_of_works", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "largetext", "value": "Land Identification\nValuation\nOffer to Purchase\nRegistration" }, { "input": true, "label": "Background", "name": "background", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "largetext" }, { "input": true, "label": "Motivation", "name": "motivation", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "largetext" }, { "input": true, "label": "Project Impact", "name": "project_impact", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "largetext" }, { "input": true, "label": "Project Comments", "name": "project_comments", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "largetext" } ], "label": "Description", "name": "description_card", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "card", "width": 2 } ], "label": "Description", "name": "Description", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "tab" }, { "controls": [ { "controls": [ { "disabled": true, "input": true, "label": "Programme Name", "name": "programme_name", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text", "value": "IDP 2023/24" }, { "disabled": true, "input": true, "label": "Programme Number", "name": "programme_number", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text", "value": "IDP23" }, { "disabled": true, "input": true, "label": "Programme Manager", "name": "programme_manager", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text", "value": "Test User" }, { "disabled": true, "input": true, "label": "Email", "name": "programme_manager_email", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text", "value": "test@test.com" }, { "disabled": true, "input": true, "label": "Telephone", "name": "programme_manager_telephone", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text" }, { "disabled": true, "input": true, "label": "Department", "name": "programme_chief_directorate", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text", "value": "RS - Roads \u0026 Stormwater" }, { "disabled": true, "input": true, "label": "Programme Description", "name": "programme_description", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "largetext" } ], "label": "Programme", "name": "description_card", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "card", "width": 1 } ], "label": "Programme", "name": "Programme", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "tab" } ], "disable_form": false, "name": "Information" }, { "actions": [ "Save", "Request Amendment", "Request Capitalisation", "Request Retention", "Request Close", "Revert to Planning", "Request On-Hold", "Request Cancellation" ], "active": true, "controls": [ { "display": 45, "input": true, "label": "_id", "name": "_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 45 }, { "display": 3, "input": true, "label": "Workflow ID", "name": "lookup_workflow_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 3 }, { "display": "N/A", "input": true, "label": "Project Stage", "name": "stage_name", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "N/A" }, { "input": true, "label": "Stage Name ID", "name": "lookup_stage_name_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden" }, { "controls": [ { "controls": [ { "data": [], "datasource": "pc/query/employee", "datasource_type": "table_uuid", "disabled": true, "display": [], "input": true, "label": "Programme Manager", "name": "employee_1_uuids", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "queries": [ { "param_name": "query_string", "type": "param", "name": "queryString" } ], "table": "project", "type": "multi-query", "value": [] }, { "data": [], "datasource": "pc/query/employee", "datasource_type": "table_uuid", "disabled": true, "display": [], "input": true, "label": "Project Leader", "name": "employee_2_uuids", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "queries": [ { "param_name": "query_string", "type": "param", "name": "queryString" } ], "table": "project", "type": "multi-query", "value": [] }, { "data": [], "datasource": "pc/query/employee", "datasource_type": "table_uuid", "disabled": true, "display": [], "input": true, "label": "Project Support Administrator", "name": "employee_3_uuids", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "queries": [ { "param_name": "query_string", "type": "param", "name": "queryString" } ], "table": "project", "type": "multi-query", "value": [] } ], "label": "Resources", "name": "resources_card", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "card" } ], "label": "Resources", "name": "resources_cards", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "cards" }, { "controls": [ { "data": [ { "id": 11, "raw_value": "Architect", "value": "Architect", "meta": null, "deleted": false, "system": false }, { "id": 52, "raw_value": "Civil", "value": "Civil", "meta": null, "deleted": false, "system": false }, { "id": 12, "raw_value": "Director", "value": "Director", "meta": null, "deleted": false, "system": false }, { "id": 13, "raw_value": "Engineer", "value": "Engineer", "meta": null, "deleted": false, "system": false }, { "id": 51, "raw_value": "Project Manager", "value": "Project Manager", "meta": null, "deleted": false, "system": false } ], "datasource": "project_resource_type", "datasource_type": "lookup", "disabled": true, "grid": true, "input": true, "label": "Project Role", "name": "lookup_project_resource_type_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "dropdown" }, { "datasource": "/pc/query/employee", "datasource_type": "table_uuid", "disabled": true, "grid": true, "input": true, "label": "Employee Name", "name": "employee_uuid", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "queries": [ { "param_name": "query_string", "type": "param", "name": "queryString" } ], "table": "project", "type": "query" } ], "input": true, "label": "Internal Resources", "name": "resources", "noreturn": false, "operations": { "add": true, "edit": false, "view": true, "delete": false }, "table": "project", "type": "linkedgrid", "value": [ { "employee_uuid": { "id": "15345996-d35e-4ce6-9f77-be0ecd07b5b0", "value": "Test User" }, "lookup_project_resource_type_id": { "id": 11, "value": "Architect" } }, { "employee_uuid": { "id": "d2d0e314-35df-4f05-b2ea-5ced9d5417b5", "value": "Jack Daniels" }, "lookup_project_resource_type_id": { "id": 11, "value": "Architect" } } ] } ], "disable_form": false, "name": "Resources" }, { "actions": [ "Save", "Request Amendment", "Request Capitalisation", "Request Retention", "Request Close", "Revert to Planning", "Request On-Hold", "Request Cancellation" ], "active": true, "controls": [ { "disabled": true, "display": "00e3755a-af67-4e92-9011-de0bd2522d9d", "input": true, "label": "UUID", "name": "_uuid", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "00e3755a-af67-4e92-9011-de0bd2522d9d" }, { "controls": [ { "disabled": true, "display": 45, "input": true, "label": "_id", "name": "_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 45 }, { "disabled": true, "display": 3, "input": true, "label": "Workflow ID", "name": "lookup_workflow_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 3 }, { "disabled": true, "display": "N/A", "input": true, "label": "Project Stage", "name": "stage_name", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "N/A" }, { "disabled": true, "input": true, "label": "Stage Name ID", "name": "lookup_stage_name_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden" }, { "controls": [ { "controls": [ { "datasource": "/pc/search/service_provider", "displayfields": [ { "service_provider_name": "Company Name" } ], "input": false, "label": "Entity Name", "name": "search_service_provider", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "prompt": "Search Professional Service Provider", "type": "search" }, { "data": [ { "id": 42, "raw_value": "Architectural/Surveying", "value": "Architectural/Surveying", "meta": null, "deleted": false, "system": false }, { "id": 41, "raw_value": "Construction", "value": "Construction", "meta": null, "deleted": false, "system": false }, { "id": 33, "raw_value": "Gym Leader", "value": "Gym Leader", "meta": null, "deleted": false, "system": false }, { "id": 40, "raw_value": "Plant Hire", "value": "Plant Hire", "meta": null, "deleted": false, "system": false }, { "id": 30, "raw_value": "Tester", "value": "Tester", "meta": null, "deleted": false, "system": false } ], "datasource": "contract_vendor_type", "datasource_type": "lookup", "grid": true, "input": false, "label": "Profession", "name": "lookup_contract_vendor_type_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "dropdown" }, { "disabled": true, "input": true, "label": "Service Provider UUID", "name": "service_provider_uuid", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden" }, { "disabled": true, "grid": true, "input": false, "label": "Entity Name", "name": "service_provider_name", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "text" }, { "datasource": "pc/query/contacts_from_service_provider", "datasource_type": "table_with_uuid", "early_fetch": true, "input": true, "label": "Contact Persons", "name": "service_provider_contact_uuids", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "queries": [ { "param_name": "service_provider_uuid", "type": "local", "name": "service_provider_uuid" } ], "table": "project", "type": "multi-query" }, { "grid": true, "input": false, "label": "Contract Number", "name": "contract_number", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "text" }, { "grid": true, "input": false, "label": "Contract Reference", "name": "contract_reference", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "text" }, { "grid": true, "input": false, "label": "Task/Purchase Order Number", "name": "task_order_number", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "text" }, { "grid": true, "input": false, "label": "Contract Value (Incl. VAT)", "name": "contract_value", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "currency" }, { "grid": true, "input": false, "label": "Contract Escalation", "name": "contract_escalation", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "switch" }, { "grid": true, "input": false, "label": "Start Date", "name": "start_date", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "date" }, { "grid": true, "input": false, "label": "End Date", "name": "end_date", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": null, "message": "End Date must be later than Start Date", "trigger": "blur", "validator": "greater_than", "dependencies": [ "service_providers-start_date" ], "type": "date" } ], "type": "date" } ], "label": "Service Provider", "name": "service_provider", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "card" }, { "controls": [ { "displayfields": [ { "name": "Name" }, { "email": "Email" }, { "telephone_number": "Tel No." }, { "cellphone_number": "Cell No." } ], "input": true, "label": "Contact details", "name": "service_provider_contact_details", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "info-cards" } ], "label": "Contact Details", "name": "service_provider_contact_details_card", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "card" } ], "disabled": true, "label": null, "name": "sp_cards", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "type": "cards" } ], "input": true, "label": "Service Providers", "name": "service_providers", "noreturn": false, "operations": { "add": true, "edit": false, "view": true, "delete": false }, "table": "project", "type": "linkedgrid", "value": [ { "_uuid": { "id": "c54d3391-b0c4-4e11-bab6-3c7e423b3ec7", "value": "c54d3391-b0c4-4e11-bab6-3c7e423b3ec7" }, "contract_escalation": { "id": false, "value": false }, "lookup_contract_vendor_type_id": { "id": 42, "value": "Architectural/Surveying" }, "service_provider_contact_details": [ { "email": "paul.simon@domain.com", "name": "Paul Simon" } ], "service_provider_contact_uuids": [ { "id": "c522fb74-1908-4151-803f-4e26a3a69e66", "value": "Paul Simon" } ], "service_provider_name": { "id": "Simons Architects (PTY) LTD", "value": "Simons Architects (PTY) LTD" }, "service_provider_uuid": { "id": "f4c968b7-a6a1-4dbb-9211-80d79b4799de", "value": "f4c968b7-a6a1-4dbb-9211-80d79b4799de" } } ] } ], "disable_form": false, "name": "Service Providers" }, { "actions": null, "active": false, "controls": [ { "disabled": true, "display": "00e3755a-af67-4e92-9011-de0bd2522d9d", "input": true, "label": "UUID", "name": "_uuid", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "00e3755a-af67-4e92-9011-de0bd2522d9d" }, { "display": 45, "input": true, "label": "_id", "name": "_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 45 }, { "display": 3, "input": true, "label": "Workflow ID", "name": "lookup_workflow_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": 3 }, { "display": "N/A", "input": true, "label": "Project Stage", "name": "stage_name", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden", "value": "N/A" }, { "input": true, "label": "Stage Name ID", "name": "lookup_stage_name_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden" }, { "controls": [ { "datasource": "/pc/search/budget_item", "disabled": true, "displayfields": [ { "budget_item_name": "Budget Item Name" }, { "budget_item_number": "Budget Item Number" }, { "financial_year": "Financial Year" }, { "funding_source": "Funding Source" } ], "early_fetch": true, "input": true, "label": "Entity Name", "name": "search_budget_item", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "prompt": "Search Budget Item", "queries": [ { "param_name": "value", "type": "param", "name": "queryString" }, { "param_name": "lookup_department_id", "type": "global", "name": "lookup_department_id" } ], "table": "project", "type": "search" }, { "disabled": true, "grid": false, "input": true, "label": "Budget Item ID", "name": "budget_item_id", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "hidden" }, { "disabled": true, "grid": true, "input": true, "label": "Assigned Budget", "name": "assigned_amount", "noreturn": false, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "rules": [ { "required": null, "message": "Assigned Budget must not exceed Available Budget", "trigger": "blur", "validator": "less_than", "dependencies": [ "available_amount" ], "type": "currency" } ], "table": "project", "type": "currency" }, { "disabled": true, "grid": true, "input": true, "label": "Available Budget", "name": "available_amount", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "currency" }, { "disabled": true, "grid": true, "input": true, "label": "Other Assigned Budget", "name": "other_assigned_amount", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "currency" }, { "disabled": true, "grid": true, "input": true, "label": "Total Budget", "name": "total_amount", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "currency" }, { "disabled": true, "grid": true, "input": true, "label": "Budget Item Name", "name": "budget_item_name", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text" }, { "disabled": true, "grid": true, "input": true, "label": "Budget Item Number", "name": "budget_item_number", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text" }, { "disabled": true, "grid": true, "input": true, "label": "Budget Department", "name": "budget_department", "noreturn": true, "operations": { "add": true, "edit": true, "view": true, "delete": true }, "table": "project", "type": "text" } ], "input": true, "label": "Budgets", "name": "budgets", "noreturn": false, "operations": { "add": true, "edit": false, "view": true, "delete": false }, "table": "project", "type": "linkedgrid", "value": [ { "_uuid": { "id": "0176068f-1a35-4db1-b8fc-620108512993", "value": "0176068f-1a35-4db1-b8fc-620108512993" }, "assigned_amount": { "id": 80000, "value": 80000 }, "available_amount": { "id": 0, "value": 0 }, "budget_department": { "id": "RS - Roads \u0026 Stormwater", "value": "RS - Roads \u0026 Stormwater" }, "budget_item_id": { "id": 6, "value": 6 }, "budget_item_name": { "id": "IX001-02 Wilshire to Bongani", "value": "IX001-02 Wilshire to Bongani" }, "budget_item_number": { "id": "IX001-02", "value": "IX001-02" }, "other_assigned_amount": { "id": 130000, "value": 130000 }, "total_amount": { "id": 130000, "value": 130000 } }, { "_uuid": { "id": "bdd5dcba-56f0-4972-9963-215d515d3bef", "value": "bdd5dcba-56f0-4972-9963-215d515d3bef" }, "assigned_amount": { "id": 10000, "value": 10000 }, "available_amount": { "id": 880000, "value": 880000 }, "budget_department": { "id": "RS - Roads \u0026 Stormwater", "value": "RS - Roads \u0026 Stormwater" }, "budget_item_id": { "id": 5, "value": 5 }, "budget_item_name": { "id": "IX001-01 Main to Wilshire", "value": "IX001-01 Main to Wilshire" }, "budget_item_number": { "id": "XI001-01", "value": "XI001-01" }, "other_assigned_amount": { "id": 10000, "value": 10000 }, "total_amount": { "id": 890000, "value": 890000 } }, { "_uuid": { "id": "edc8840a-72c5-4233-82f2-e7f7f1360dc2", "value": "edc8840a-72c5-4233-82f2-e7f7f1360dc2" }, "assigned_amount": { "id": 50000, "value": 50000 }, "available_amount": { "id": 0, "value": 0 }, "budget_department": { "id": "RS - Roads \u0026 Stormwater", "value": "RS - Roads \u0026 Stormwater" }, "budget_item_id": { "id": 6, "value": 6 }, "budget_item_name": { "id": "IX001-02 Wilshire to Bongani", "value": "IX001-02 Wilshire to Bongani" }, "budget_item_number": { "id": "IX001-02", "value": "IX001-02" }, "other_assigned_amount": { "id": 130000, "value": 130000 }, "total_amount": { "id": 130000, "value": 130000 } } ] } ], "disable_form": false, "name": "Budget" } ] }; var myCopy = null; function recursiveDeepCopy(o) { var newO, i; if (typeof o !== 'object') { return o; } if (!o) { return o; } if ('[object Array]' === Object.prototype.toString.apply(o)) { newO = []; for (i = 0; i < o.length; i += 1) { newO[i] = recursiveDeepCopy(o[i]); } return newO; } newO = {}; for (i in o) { if (o.hasOwnProperty(i)) { newO[i] = recursiveDeepCopy(o[i]); } } return newO; }
Tests:
Lodash CloneDeep
myCopy = _.cloneDeep(MyObject);
Json Clone
myCopy = JSON.parse(JSON.stringify(MyObject));
recursiveDeepCopy
myCopy = recursiveDeepCopy(MyObject);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (3)
Previous results
Fork
Test case name
Result
Lodash CloneDeep
Json Clone
recursiveDeepCopy
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):
A nice set of benchmarking data! To answer your question, I'll analyze the latest benchmark result and provide some insights: The three tests are comparing the performance of different cloning methods for an object graph. **Recursive Deep Copy** * Browser: Firefox 111 * Device Platform: Desktop * Operating System: Linux * Executions Per Second: 18937.603515625 This test is likely to be the fastest, as it's a simple recursive function that creates a new object with the same structure and values. **JSON Clone** * Browser: Firefox 111 * Device Platform: Desktop * Operating System: Linux * Executions Per Second: 4845.74560546875 This test uses `JSON.parse(JSON.stringify(MyObject))`, which is a built-in JavaScript method that creates a deep copy of an object by serializing and deserializing it. This method can be slower than the recursive deep copy, as it involves additional parsing and serialization steps. **Lodash CloneDeep** * Browser: Firefox 111 * Device Platform: Desktop * Operating System: Linux * Executions Per Second: 2307.508544921875 This test uses Lodash's `cloneDeep` function, which is a more efficient cloning method than the built-in `JSON.parse(JSON.stringify(MyObject))`. However, it may not be as fast as the recursive deep copy, depending on the complexity of the object graph. Based on these results, it appears that the order from fastest to slowest is: 1. Recursive Deep Copy 2. Lodash CloneDeep 3. JSON Clone Please note that these results are specific to Firefox 111 on a Linux desktop and may not be representative of other browsers or platforms.
Related benchmarks:
Lodash cloneDeep vs JSON Clone with Array
cloneDeep vs JSON stringify + parse (long arr)
lodash cloneDeep vs json.stringify
Lodash cloneDeep vs JSON parse
Object cloning with Lodash clone vs cloneDeep vs merge vs structuredClone vs JSON.parse(JSON.stringify(o))
Comments
Confirm delete:
Do you really want to delete benchmark?