-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
perf: switch from object spread to Object.assign
when merging globals
#16311
Conversation
✅ Deploy Preview for docs-eslint canceled.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
Am I reading your numbers wrongly or the times got worse after the change? |
@alfaproject in these tests, less ms is better. Linting a test project that has 450 files (the Multi Files test) takes 21488.7766ms before the change, 13452.5753ms after the change, so it works faster after the change. |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.23.1` -> `8.24.0`](https://renovatebot.com/diffs/npm/eslint/8.23.1/8.24.0) | --- ### Release Notes <details> <summary>eslint/eslint</summary> ### [`v8.24.0`](https://github.com/eslint/eslint/releases/tag/v8.24.0) [Compare Source](eslint/eslint@v8.23.1...v8.24.0) #### Features - [`1729f9e`](eslint/eslint@1729f9e) feat: account for `sourceType: "commonjs"` in the strict rule ([#​16308](eslint/eslint#16308)) (Milos Djermanovic) - [`b0d72c9`](eslint/eslint@b0d72c9) feat: add rule logical-assignment-operators ([#​16102](eslint/eslint#16102)) (fnx) - [`f02bcd9`](eslint/eslint@f02bcd9) feat: `array-callback-return` support `findLast` and `findLastIndex` ([#​16314](eslint/eslint#16314)) (Sosuke Suzuki) #### Documentation - [`2c152ff`](eslint/eslint@2c152ff) docs: note false positive `Object.getOwnPropertyNames` in prefer-reflect ([#​16317](eslint/eslint#16317)) (AnnAngela) - [`bf7bd88`](eslint/eslint@bf7bd88) docs: fix warn severity description for new config files ([#​16324](eslint/eslint#16324)) (Nitin Kumar) - [`8cc0bbe`](eslint/eslint@8cc0bbe) docs: use more clean link syntax ([#​16309](eslint/eslint#16309)) (Percy Ma) - [`6ba269e`](eslint/eslint@6ba269e) docs: fix typo ([#​16288](eslint/eslint#16288)) (jjangga0214) #### Chores - [`131e646`](eslint/eslint@131e646) chore: Upgrade [@​humanwhocodes/config-array](https://github.com/humanwhocodes/config-array) for perf ([#​16339](eslint/eslint#16339)) (Nicholas C. Zakas) - [`504fe59`](eslint/eslint@504fe59) perf: switch from object spread to `Object.assign` when merging globals ([#​16311](eslint/eslint#16311)) (Milos Djermanovic) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yMDIuMSIsInVwZGF0ZWRJblZlciI6IjMyLjIwMi4zIn0=--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1560 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Ah sorry, I didn't realise there was a multi files test. Only noticed the single ones, never mind then |
Prerequisites checklist
What is the purpose of this pull request? (put an "X" next to an item)
[ ] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[x] Other, please explain:
Refs #16302, improves performance of the new config system.
What changes did you make? (Give an overview)
Replaced object spread with
Object.assign
when merging globals in Linter.Performance before the change:
Performance after the change:
Note: Before running performance tests, I added browser globals in the config:
Is there anything you'd like reviewers to focus on?