Skip to content

Comments

[8.19] [Lens] Move from lodash.cloneDeep to native structuredClone (#223207)#223519

Merged
kibanamachine merged 2 commits intoelastic:8.19from
kibanamachine:backport/8.19/pr-223207
Jun 16, 2025
Merged

[8.19] [Lens] Move from lodash.cloneDeep to native structuredClone (#223207)#223519
kibanamachine merged 2 commits intoelastic:8.19from
kibanamachine:backport/8.19/pr-223207

Conversation

@kibanamachine
Copy link
Contributor

Backport

This will backport the following commits from main to 8.19:

Questions ?

Please refer to the Backport tool documentation

…tic#223207)

## Summary

Noticed we use a lot `cloneDeep` while reviewing elastic#222160 so I've
revisited Lens to use the native structuredClone.

The obvious question is: is structuredClone fast enough? I've setup a
(micro) benchmark to compare the two
[here](https://jsbenchmark.com/#eyJjYXNlcyI6W3siaWQiOiJZeGVGTlFuWHljX3pPaUdlVkM0M2kiLCJjb2RlIjoibG9kYXNoLmNsb25lRGVlcChEQVRBKSIsIm5hbWUiOiJsb2Rhc2guY2xvbmVEZWVwIiwiZGVwZW5kZW5jaWVzIjpbeyJ1cmwiOiJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xvZGFzaEA0LjE3LjIxLytlc20iLCJuYW1lIjoibG9kYXNoIiwiZXNtIjp0cnVlfV19LHsiaWQiOiI0aGR0SXQ4bVlianEyaENEQ1l3d0UiLCJjb2RlIjoic3RydWN0dXJlZENsb25lKERBVEEpIiwibmFtZSI6InN0cnVjdHVyZWRDbG9uZSIsImRlcGVuZGVuY2llcyI6W119XSwiY29uZmlnIjp7Im5hbWUiOiJCYXNpYyBleGFtcGxlIiwicGFyYWxsZWwiOnRydWUsImdsb2JhbFRlc3RDb25maWciOnsiZGVwZW5kZW5jaWVzIjpbXX0sImRhdGFDb2RlIjoicmV0dXJuIFtcbiAge1xuICAgIFwiX2lkXCI6IFwiNjg0ODA1NzIwN2FiYjE1OTM3N2VlYWJhXCIsXG4gICAgXCJpbmRleFwiOiAwLFxuICAgIFwiZ3VpZFwiOiBcIjVlMzUyZGY5LWMyNGEtNDRmYy1iZGU5LTNjNWIwNmZmOWMzZVwiLFxuICAgIFwiaXNBY3RpdmVcIjogZmFsc2UsXG4gICAgXCJiYWxhbmNlXCI6IFwiJDEsNjY0LjgwXCIsXG4gICAgXCJwaWN0dXJlXCI6IFwiaHR0cDovL3BsYWNlaG9sZC5pdC8zMngzMlwiLFxuICAgIFwiYWdlXCI6IDIxLFxuICAgIFwiZXllQ29sb3JcIjogXCJicm93blwiLFxuICAgIFwibmFtZVwiOiBcIkRlYW5uZSBNaXJhbmRhXCIsXG4gICAgXCJnZW5kZXJcIjogXCJmZW1hbGVcIixcbiAgICBcImNvbXBhbnlcIjogXCJEVU9GTEVYXCIsXG4gICAgXCJlbWFpbFwiOiBcImRlYW5uZW1pcmFuZGFAZHVvZmxleC5jb21cIixcbiAgICBcInBob25lXCI6IFwiKzEgKDkxNCkgNDc3LTIxODBcIixcbiAgICBcImFkZHJlc3NcIjogXCIyMTEgU2Fja2V0dCBTdHJlZXQsIEJpZGRsZSwgS2Fuc2FzLCA0MTc4XCIsXG4gICAgXCJhYm91dFwiOiBcIkV4IG1hZ25hIHNpbnQgYW5pbSBpbmNpZGlkdW50IG1pbmltIGR1aXMgY29uc2VjdGV0dXIgc3VudCBjb25zZWN0ZXR1ciBjdWxwYSBsYWJvcnVtIHVsbGFtY28uIExhYm9ydW0gbm9uIGVsaXQgZnVnaWF0IGNvbnNlY3RldHVyIG5pc2kgYXV0ZSBhbWV0LiBOdWxsYSBlYSB0ZW1wb3IgbGFib3JlIHZvbHVwdGF0ZSBlYS4gTWluaW0gbnVsbGEgY29tbW9kbyBkb2xvciBlaXVzbW9kIGlydXJlIHF1aSBldSBhZGlwaXNpY2luZyBzdW50IGFkIGVuaW0uIFNpbnQgb2NjYWVjYXQgcXVpcyBlbmltIG5vbiBlaXVzbW9kIGVzdCBkZXNlcnVudCByZXByZWhlbmRlcml0LiBDb21tb2RvIGN1cGlkYXRhdCBtaW5pbSBjdWxwYSB1bGxhbWNvIGRvIGN1cGlkYXRhdC4gQWQgdm9sdXB0YXRlIGlkIG1pbmltIG9mZmljaWEgZWxpdCBxdWkgYWxpcXVhIGNvbW1vZG8gdmVuaWFtLlxcclxcblwiLFxuICAgIFwicmVnaXN0ZXJlZFwiOiBcIjIwMTgtMDgtMTFUMTI6NTQ6MTYgLTAyOjAwXCIsXG4gICAgXCJsYXRpdHVkZVwiOiAtNjYuNzE2Mjg4LFxuICAgIFwibG9uZ2l0dWRlXCI6IC0zMS41MDA0NTYsXG4gICAgXCJ0YWdzXCI6IFtcbiAgICAgIFwiZXRcIixcbiAgICAgIFwiYW5pbVwiLFxuICAgICAgXCJkb2xvclwiLFxuICAgICAgXCJzaXRcIixcbiAgICAgIFwiZWxpdFwiLFxuICAgICAgXCJlc3NlXCIsXG4gICAgICBcImV1XCJcbiAgICBdLFxuICAgIFwiZnJpZW5kc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwiaWRcIjogMCxcbiAgICAgICAgXCJuYW1lXCI6IFwiTWVhZ2FuIFN1dHRvblwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcImlkXCI6IDEsXG4gICAgICAgIFwibmFtZVwiOiBcIlRvbmkgU3VsbGl2YW5cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJpZFwiOiAyLFxuICAgICAgICBcIm5hbWVcIjogXCJHZW9yZ2UgUGl0dG1hblwiXG4gICAgICB9XG4gICAgXSxcbiAgICBcImdyZWV0aW5nXCI6IFwiSGVsbG8sIERlYW5uZSBNaXJhbmRhISBZb3UgaGF2ZSA5IHVucmVhZCBtZXNzYWdlcy5cIixcbiAgICBcImZhdm9yaXRlRnJ1aXRcIjogXCJiYW5hbmFcIlxuICB9XG5dIn19)

The two looks like they are within the same performance.

(cherry picked from commit be75dfd)
@kibanamachine kibanamachine added the backport This PR is a backport of another PR label Jun 12, 2025
@kibanamachine kibanamachine enabled auto-merge (squash) June 12, 2025 10:05
@kibanamachine kibanamachine merged commit 75c22ea into elastic:8.19 Jun 16, 2025
8 checks passed
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
lens 1.5MB 1.5MB -17.0B

History

cc @dej611

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a backport of another PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants