René's URL Explorer Experiment


Title: Low-hanging performance improvements by mdboom · Pull Request #5664 · matplotlib/matplotlib · GitHub

Open Graph Title: Low-hanging performance improvements by mdboom · Pull Request #5664 · matplotlib/matplotlib

X Title: Low-hanging performance improvements by mdboom · Pull Request #5664 · matplotlib/matplotlib

Description: Instantiating Paths is expensive, but they aren't mutable, so just reuse when possible. WeakValueDictionaries are expensive to construct. We can fix that by handling the weakrefs ourself. And cbook.popall has no reason to exist. Maybe someone's using it and it should stay, but no one should be using it. On my benchmark of: plt.subplots(8, 8) plt.savefig("test.png") I get a speedup from 5.04s to 3.81s.

Open Graph Description: Instantiating Paths is expensive, but they aren't mutable, so just reuse when possible. WeakValueDictionaries are expensive to construct. We can fix that by handling the weakrefs ourself. And ...

X Description: Instantiating Paths is expensive, but they aren't mutable, so just reuse when possible. WeakValueDictionaries are expensive to construct. We can fix that by handling the weakrefs ourself. ...

Opengraph URL: https://github.com/matplotlib/matplotlib/pull/5664

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:f63d40d7-3e7b-a169-9bd3-39bacb3ab842
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idC9F8:172D3F:43FE83B:5F07562:6A54E5E7
html-safe-nonce23cf6be52a8ddb9d9584a5e70f5616d9ebec2126cf71b5a53d56972caa90ec0b
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDOUY4OjE3MkQzRjo0M0ZFODNCOjVGMDc1NjI6NkE1NEU1RTciLCJ2aXNpdG9yX2lkIjoiODY3MjI0MTM4NzQxNTA3NTU5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac1e6972afc28b8471e2fec9b56ae6357b3a53224f9719253ef169a069df7abff4
hovercard-subject-tagpull_request:53451741
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/matplotlib/matplotlib/pull/5664/files
twitter:imagehttps://avatars.githubusercontent.com/u/38294?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/38294?s=400&v=4
og:image:altInstantiating Paths is expensive, but they aren't mutable, so just reuse when possible. WeakValueDictionaries are expensive to construct. We can fix that by handling the weakrefs ourself. And ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneeae2aab99907699a22d2c8449aa683ca74454fca87211b98f7c7b722086b2839
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git
octolytics-dimension-user_id215947
octolytics-dimension-user_loginmatplotlib
octolytics-dimension-repository_id1385122
octolytics-dimension-repository_nwomatplotlib/matplotlib
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1385122
octolytics-dimension-repository_network_root_nwomatplotlib/matplotlib
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasebb1b4ffdc07c66de20ad344214f55df0aa364bd3
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/pull/5664/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F5664%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F5664%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/pull/5664/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/5664/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/5664/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
Notifications https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Fork 8.4k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Star 23k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Code https://github.com/matplotlib/matplotlib
Issues 1.1k https://github.com/matplotlib/matplotlib/issues
Pull requests 409 https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality 0 https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Code https://github.com/matplotlib/matplotlib
Issues https://github.com/matplotlib/matplotlib/issues
Pull requests https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
tacaswellhttps://github.com/tacaswell
matplotlib:masterhttps://github.com/matplotlib/matplotlib/tree/master
mdboom:performancehttps://github.com/mdboom/matplotlib/tree/performance
Conversation 5 https://github.com/matplotlib/matplotlib/pull/5664
Commits 7 https://github.com/matplotlib/matplotlib/pull/5664/commits
Checks 0 https://github.com/matplotlib/matplotlib/pull/5664/checks
Files changed https://github.com/matplotlib/matplotlib/pull/5664/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
Low-hanging performance improvements https://github.com/matplotlib/matplotlib/pull/5664/files#top
Show all changes 7 commits https://github.com/matplotlib/matplotlib/pull/5664/files
cd99b5b Low-hanging performance improvements mdboom Dec 11, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/cd99b5b32e3616fb01ec5cfa001bb898820db622
1299528 Fix pickling mdboom Dec 12, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/1299528a12ec9dcfa234664e03d5b203b2cec809
0364847 Fix comment mdboom Dec 14, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/0364847f70c27126c55b5ef47923787ae5345c43
49f77ad Fix pickling mdboom Dec 15, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/49f77ad52db2fb2b3b86ca6c307c8dfabf479697
26d3e25 Fix pickle mdboom Dec 15, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/26d3e2550ed3c41af67307ff1670cffa01442e66
5e1ee64 Fix pickling mdboom Dec 15, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/5e1ee64b3d4652bf7e122c0335130807483d8965
8a69511 PEP8 mdboom Dec 22, 2015 https://github.com/matplotlib/matplotlib/pull/5664/commits/8a69511753458be7aa0fd2795a2716f1e03d011a
Clear filters https://github.com/matplotlib/matplotlib/pull/5664/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
axis.py https://github.com/matplotlib/matplotlib/pull/5664/files#diff-04227e6d4900298b309bddab2e848da8cc638da2913c64b5dcf0d800ba2a0c16
cbook.py https://github.com/matplotlib/matplotlib/pull/5664/files#diff-84a45e2dda93ad4c1d950da5c16846965aa8d96aebfe8d00acaeb83a18c1b2f0
markers.py https://github.com/matplotlib/matplotlib/pull/5664/files#diff-0463a29ec8272d330266fc7f9314e6d1ee12dd8099a8b7184dd510823326991b
test_pickle.py https://github.com/matplotlib/matplotlib/pull/5664/files#diff-1027bd6462841c22490c64a3c4cd10e5e260f11145a7c23f0776926113727e86
transforms.py https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
lib/matplotlib/axis.pyhttps://github.com/matplotlib/matplotlib/pull/5664/files#diff-04227e6d4900298b309bddab2e848da8cc638da2913c64b5dcf0d800ba2a0c16
View file https://github.com/mdboom/matplotlib/blob/8a69511753458be7aa0fd2795a2716f1e03d011a/lib/matplotlib/axis.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/5664/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-04227e6d4900298b309bddab2e848da8cc638da2913c64b5dcf0d800ba2a0c16
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-04227e6d4900298b309bddab2e848da8cc638da2913c64b5dcf0d800ba2a0c16
lib/matplotlib/cbook.pyhttps://github.com/matplotlib/matplotlib/pull/5664/files#diff-84a45e2dda93ad4c1d950da5c16846965aa8d96aebfe8d00acaeb83a18c1b2f0
View file https://github.com/mdboom/matplotlib/blob/8a69511753458be7aa0fd2795a2716f1e03d011a/lib/matplotlib/cbook.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/5664/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-84a45e2dda93ad4c1d950da5c16846965aa8d96aebfe8d00acaeb83a18c1b2f0
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-84a45e2dda93ad4c1d950da5c16846965aa8d96aebfe8d00acaeb83a18c1b2f0
lib/matplotlib/markers.pyhttps://github.com/matplotlib/matplotlib/pull/5664/files#diff-0463a29ec8272d330266fc7f9314e6d1ee12dd8099a8b7184dd510823326991b
View file https://github.com/mdboom/matplotlib/blob/8a69511753458be7aa0fd2795a2716f1e03d011a/lib/matplotlib/markers.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/5664/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-0463a29ec8272d330266fc7f9314e6d1ee12dd8099a8b7184dd510823326991b
pelsonhttps://github.com/pelson
Jan 6, 2016https://github.com/matplotlib/matplotlib/pull/5664/files#r48964359
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/path.py#L173https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/path.py#L173
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-0463a29ec8272d330266fc7f9314e6d1ee12dd8099a8b7184dd510823326991b
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-0463a29ec8272d330266fc7f9314e6d1ee12dd8099a8b7184dd510823326991b
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-0463a29ec8272d330266fc7f9314e6d1ee12dd8099a8b7184dd510823326991b
lib/matplotlib/tests/test_pickle.pyhttps://github.com/matplotlib/matplotlib/pull/5664/files#diff-1027bd6462841c22490c64a3c4cd10e5e260f11145a7c23f0776926113727e86
View file https://github.com/mdboom/matplotlib/blob/8a69511753458be7aa0fd2795a2716f1e03d011a/lib/matplotlib/tests/test_pickle.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/5664/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-1027bd6462841c22490c64a3c4cd10e5e260f11145a7c23f0776926113727e86
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-1027bd6462841c22490c64a3c4cd10e5e260f11145a7c23f0776926113727e86
lib/matplotlib/transforms.pyhttps://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
View file https://github.com/mdboom/matplotlib/blob/8a69511753458be7aa0fd2795a2716f1e03d011a/lib/matplotlib/transforms.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/5664/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
tacaswellhttps://github.com/tacaswell
Dec 22, 2015https://github.com/matplotlib/matplotlib/pull/5664/files#r48299691
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
mdboomhttps://github.com/mdboom
Dec 22, 2015https://github.com/matplotlib/matplotlib/pull/5664/files#r48300870
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
tacaswellhttps://github.com/tacaswell
Dec 22, 2015https://github.com/matplotlib/matplotlib/pull/5664/files#r48301395
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/5664/files
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com/matplotlib/matplotlib/pull/5664/files#diff-501b7013d3efa42e08d1cc8dc7a27ee6944fcddb062cd7032249a0031bb01ff4
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.