-
-
Notifications
You must be signed in to change notification settings - Fork 615
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
fix(jsx/dom): fix performance issue with adding many new node listings #3205
Conversation
* First time rendering does not need to look for elements from child nodes ** Avoid unnecessary checks with `node.pP`. * Sibling elements are always searched, so there is no need for a for loop. ** Need only `findInsertBefore(node.vC[0])`
@yusukebe |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3205 +/- ##
==========================================
- Coverage 96.20% 96.20% -0.01%
==========================================
Files 151 151
Lines 15074 15061 -13
Branches 2718 2714 -4
==========================================
- Hits 14502 14489 -13
Misses 572 572 ☔ View full report in Codecov by Sentry. |
@usualoma Yes. I'll do it later. |
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!
@usualoma Thanks! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [hono](https://hono.dev/) ([source](https://github.com/honojs/hono)) | [`4.5.1` -> `4.5.4`](https://renovatebot.com/diffs/npm/hono/4.5.1/4.5.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/hono/4.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/hono/4.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/hono/4.5.1/4.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/hono/4.5.1/4.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>honojs/hono (hono)</summary> ### [`v4.5.4`](https://github.com/honojs/hono/releases/tag/v4.5.4) [Compare Source](https://github.com/honojs/hono/compare/v4.5.3...v4.5.4) ##### What's Changed - fix(jsx): corrects the type of 'draggable' attribute in intrinsic-elements.ts by [@​yasuaki640](https://github.com/yasuaki640) in [https://github.com/honojs/hono/pull/3224](https://github.com/honojs/hono/pull/3224) - feat(jsx): allow to merge CSSProperties declaration by [@​jonasnobile](https://github.com/jonasnobile) in [https://github.com/honojs/hono/pull/3228](https://github.com/honojs/hono/pull/3228) - feat(client): Add WebSocket Provider Integration Tests and Enhance WebSocket Initialization by [@​naporin0624](https://github.com/naporin0624) in [https://github.com/honojs/hono/pull/3213](https://github.com/honojs/hono/pull/3213) - fix(types): `param` in `ValidationTargets` supports optional param by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/3229](https://github.com/honojs/hono/pull/3229) ##### New Contributors - [@​jonasnobile](https://github.com/jonasnobile) made their first contribution in [https://github.com/honojs/hono/pull/3228](https://github.com/honojs/hono/pull/3228) **Full Changelog**: honojs/hono@v4.5.3...v4.5.4 ### [`v4.5.3`](https://github.com/honojs/hono/releases/tag/v4.5.3) [Compare Source](https://github.com/honojs/hono/compare/v4.5.2...v4.5.3) #### What's Changed - fix(validator): Add double quotation marks to multipart checker regex by [@​CPlusPatch](https://github.com/CPlusPatch) in [https://github.com/honojs/hono/pull/3195](https://github.com/honojs/hono/pull/3195) - fix(validator): support `application/json` with a charset as JSON by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/3199](https://github.com/honojs/hono/pull/3199) - fix(jsx): fix handling of SVG elements in JSX. by [@​usualoma](https://github.com/usualoma) in [https://github.com/honojs/hono/pull/3204](https://github.com/honojs/hono/pull/3204) - fix(jsx/dom): fix performance issue with adding many new node listings by [@​usualoma](https://github.com/usualoma) in [https://github.com/honojs/hono/pull/3205](https://github.com/honojs/hono/pull/3205) - fix(service-worker): refer to `self.fetch` correctly by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/3200](https://github.com/honojs/hono/pull/3200) #### New Contributors - [@​CPlusPatch](https://github.com/CPlusPatch) made their first contribution in [https://github.com/honojs/hono/pull/3195](https://github.com/honojs/hono/pull/3195) **Full Changelog**: honojs/hono@v4.5.2...v4.5.3 ### [`v4.5.2`](https://github.com/honojs/hono/releases/tag/v4.5.2) [Compare Source](https://github.com/honojs/hono/compare/v4.5.1...v4.5.2) #### What's Changed - fix(helper/adapter): don't check `navigator` is `undefined` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/3171](https://github.com/honojs/hono/pull/3171) - fix(types): handle readonly array correctly by [@​m-shaka](https://github.com/m-shaka) in [https://github.com/honojs/hono/pull/3172](https://github.com/honojs/hono/pull/3172) - Revert "fix(helper/adapter): don't check `navigator` is `undefined` by [@​yusukebe](https://github.com/yusukebe) in [https://github.com/honojs/hono/pull/3173](https://github.com/honojs/hono/pull/3173) - fix(type): degradation of generic type handling by [@​m-shaka](https://github.com/m-shaka) in [https://github.com/honojs/hono/pull/3138](https://github.com/honojs/hono/pull/3138) - fix:(csrf) fix typo of csrf middleware by [@​yasuaki640](https://github.com/yasuaki640) in [https://github.com/honojs/hono/pull/3178](https://github.com/honojs/hono/pull/3178) - feat(secure-headers): remove "X-Powered-By" should be an option by [@​EdamAme-x](https://github.com/EdamAme-x) in [https://github.com/honojs/hono/pull/3177](https://github.com/honojs/hono/pull/3177) **Full Changelog**: honojs/hono@v4.5.1...v4.5.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone America/Chicago, 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, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/autoblocksai/cli). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM4LjE4LjE3IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fix #3201
** Avoid unnecessary checks with
node.pP
.** Need only
findInsertBefore(node.vC[0])
I have not added any additional tests as there is already sufficient testing on the expected rendering results.
For performance, although it is a simple test, I have added a test to check that I am not getting as much computation as n to the nth power.
The author should do the following, if applicable
bun run format:fix && bun run lint:fix
to format the code