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
render: fix perf regression introduced by #1918 #2052
Conversation
9eda8f1
to
1782fa8
Compare
@robinchew does this look correct to you? |
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.
Good catch!
How do you check for performance regression? |
We have a builtin I used git bisect to identify the problem commit. From the branch HEAD: git bisect start
git bisect bad # mark the current commit as bad
git bisect good v1.1.5 # mark the last known good commit At that point,
Mark -4 ad good:
Mark
Repeat until you've identified the first bad commit. Git bisect automatically moves the cursor for you. I focused on the worse regression because running the benchmarks reliably requires me to exit every program and leave the computer alone. It turns out there are other problems. I'm not faulting you here BTW @robinchew, your PR passed review. I didn't expect such a simple access to be that expensive. |
render: fix perf regression introduced by MithrilJS#1918
I wanted to make sure that the changes I'm making to updateNodes don't have a negative impact on benchmarks and noticed a stark perf regression in the
next
branch when compared tov1.1.6
. It turns out that checkingparentNode
happens to be toxic. Since #1916 was aboutselect
/option
, I've limited the check tooption
elements.How Has This Been Tested?
as little as #1918 since the mocks still don't support the correct API.
Types of changes
Checklist:
docs/change-log.md