Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Lazier ticks for large speedup when creating large arrays of axes.#16067
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Conversation
Be more careful to not create ticks earlier than needed, as that's quitecostly.On the following benchmark```from matplotlib import pyplot as pltfrom time import perf_counterfig = plt.figure()for i in range(3): print(i) start = perf_counter() fig.subplots(10, 10) print(perf_counter() - start) # creation time start = perf_counter() fig.clf() print(perf_counter() - start) # clearance time```this speeds up axes creation from ~1.4s to ~0.5s and figure clearance(!)from ~2.6s to ~0.3s.Note that a similar idea was already implemented inc935965, which spedup creation from ~2.6s to 0.8s and clearance from ~2.2s to ~1.8s, butobviously the whole thing is brittle and got mostly lost at somepoint...
Since this Pull Request has not been updated in 60 days, it has been marked "inactive." This does not mean that it will be closed, though it may be moved to a "Draft" state. This helps maintainers prioritize their reviewing efforts. You can pick the PR back up anytime - please ping us if you need a review or guidance to move the PR forward! If you do not plan on continuing the work, please let us know so that we can either find someone to take the PR over, or close it. |
Uh oh!
There was an error while loading.Please reload this page.
Be more careful to not create ticks earlier than needed, as that's quite
costly.
On the following benchmark
this speeds up axes creation from ~1.4s to ~0.5s and figure clearance(!)
from ~2.6s to ~0.3s.
Note that a similar idea was already implemented inc935965, which sped
up creation from ~2.6s to 0.8s and clearance from ~2.2s to ~1.8s, but
obviously the whole thing is brittle and got mostly lost at some
point...
Would be nice to track performance regressions (semi)automatically.
attn@timhoffm as you initially had this idea in#9727
(#16066 made this a bit more of a pain than expected)
edit: hmmm, looks like this just transfers the cost to draw time, will investigate more...
PR Summary
PR Checklist