-
Notifications
You must be signed in to change notification settings - Fork 16
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
Performance is not amazing on Retina machines. #30
Comments
Between window list load and the display timer firing, the window content workers run 32 iterations, but there really only needs to be 12. Instruments has more bad news, from a different run: |
NNKit commit 6107640b7d051bb34431dcf01030815537937266 significantly reduces dogpiling on the part of the window content polling objects, but the real change here is moving `[self.store startUpdatingWindowContents]` to run after the interface has been set to display—the rendering thread takes long enough when the views its rendering are not changing, updating the contents of the most expensive layers before any have been drawn to the screen creates a feedback loop: the renderer is delayed, having to catch up on more updates, which gives the polling objects more time to queue more updates. Unfortunately #30 is still a problem, but this improves things significantly.
I've improved things significantly with dc364d9, but the user experience still isn't snappy enough. Sure,
Unfortunately none of the |
Which makes sense—there are at least 4x as many pixels—but also sucks because the window content updating code path is already pretty well-optimised (Just check out the metrics in
imageComparators.h
!).Maybe #14 will help?
The text was updated successfully, but these errors were encountered: