René's URL Explorer Experiment


Title: Optimize performance of setCategoryIndex by hy9be · Pull Request #1544 · plotly/plotly.js · GitHub

Open Graph Title: Optimize performance of setCategoryIndex by hy9be · Pull Request #1544 · plotly/plotly.js

X Title: Optimize performance of setCategoryIndex by hy9be · Pull Request #1544 · plotly/plotly.js

Description: Open-source JavaScript charting library behind Plotly and Dash - Optimize performance of setCategoryIndex by hy9be · Pull Request #1544 · plotly/plotly.js

Open Graph Description: I added an auxiliary map for ax._categories array to avoid using Array.prototype.indexOf function searching for the existence of a category. I tested here and observed ~20% performance improvements...

X Description: I added an auxiliary map for ax._categories array to avoid using Array.prototype.indexOf function searching for the existence of a category. I tested here and observed ~20% performance improvements...

Opengraph URL: https://github.com/plotly/plotly.js/pull/1544

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:241444c1-9034-b72e-4474-7e84e969c0cc
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idAF20:16F405:422CA2F:567AB31:6A5D33FB
html-safe-nonce65980bb3f2316b0607c3d3a2d6efead786864076a6310cba55dacd504ac2c4c1
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRjIwOjE2RjQwNTo0MjJDQTJGOjU2N0FCMzE6NkE1RDMzRkIiLCJ2aXNpdG9yX2lkIjoiMjcxMTIwMzMwNDI5NDkyMTIxMSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmaca97fbd230f77b9964c2aa06bf95078c880efc3388f74c78d9eef61fc32f40209
hovercard-subject-tagpull_request:113736984
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/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/plotly/plotly.js/pull/1544/commits
twitter:imagehttps://opengraph.githubassets.com/9a1c767e35d2cf96adddb5db87086577874902d8be6f1d8b5197438be8d60a4d/plotly/plotly.js/pull/1544
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/9a1c767e35d2cf96adddb5db87086577874902d8be6f1d8b5197438be8d60a4d/plotly/plotly.js/pull/1544
og:image:altI added an auxiliary map for ax._categories array to avoid using Array.prototype.indexOf function searching for the existence of a category. I tested here and observed ~20% performance improvements...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamehy9be
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-cache
go-importgithub.com/plotly/plotly.js git https://github.com/plotly/plotly.js.git
octolytics-dimension-user_id5997976
octolytics-dimension-user_loginplotly
octolytics-dimension-repository_id45646037
octolytics-dimension-repository_nwoplotly/plotly.js
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id45646037
octolytics-dimension-repository_network_root_nwoplotly/plotly.js
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c975978430e9ad293956f2bbdaf153b1bd84a99
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/plotly/plotly.js/pull/1544/commits#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fplotly%2Fplotly.js%2Fpull%2F1544%2Fcommits
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%2Fplotly%2Fplotly.js%2Fpull%2F1544%2Fcommits
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%2Fcommits&source=header-repo&source_repo=plotly%2Fplotly.js
Reloadhttps://github.com/plotly/plotly.js/pull/1544/commits
Reloadhttps://github.com/plotly/plotly.js/pull/1544/commits
Reloadhttps://github.com/plotly/plotly.js/pull/1544/commits
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/commits
plotly https://github.com/plotly
plotly.jshttps://github.com/plotly/plotly.js
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/commits
Notifications https://github.com/login?return_to=%2Fplotly%2Fplotly.js
Fork 2k https://github.com/login?return_to=%2Fplotly%2Fplotly.js
Star 18.3k https://github.com/login?return_to=%2Fplotly%2Fplotly.js
Code https://github.com/plotly/plotly.js
Issues 773 https://github.com/plotly/plotly.js/issues
Pull requests 59 https://github.com/plotly/plotly.js/pulls
Actions https://github.com/plotly/plotly.js/actions
Security and quality 0 https://github.com/plotly/plotly.js/security
Insights https://github.com/plotly/plotly.js/pulse
Code https://github.com/plotly/plotly.js
Issues https://github.com/plotly/plotly.js/issues
Pull requests https://github.com/plotly/plotly.js/pulls
Actions https://github.com/plotly/plotly.js/actions
Security and quality https://github.com/plotly/plotly.js/security
Insights https://github.com/plotly/plotly.js/pulse
alexcjohnsonhttps://github.com/alexcjohnson
plotly:masterhttps://github.com/plotly/plotly.js/tree/master
hy9be:perf-setcategoryindexhttps://github.com/hy9be/plotly.js/tree/perf-setcategoryindex
Conversationhttps://github.com/plotly/plotly.js/pull/1544
Commits13 (13)https://github.com/plotly/plotly.js/pull/1544/commits
Checkshttps://github.com/plotly/plotly.js/pull/1544/checks
Files changedhttps://github.com/plotly/plotly.js/pull/1544/files
Optimize performance of setCategoryIndexhttps://github.com/plotly/plotly.js/pull/1544/commits#top
alexcjohnsonhttps://github.com/alexcjohnson
plotly:masterhttps://github.com/plotly/plotly.js/tree/master
hy9be:perf-setcategoryindexhttps://github.com/hy9be/plotly.js/tree/perf-setcategoryindex
Optimize performance of setCategoryIndexhttps://github.com/plotly/plotly.js/pull/1544/commits/40e69d39ebd4ee0f28918d58c738c9f19eaf4a2c
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
40e69d3https://github.com/plotly/plotly.js/pull/1544/commits/40e69d39ebd4ee0f28918d58c738c9f19eaf4a2c
https://github.com/plotly/plotly.js/tree/40e69d39ebd4ee0f28918d58c738c9f19eaf4a2c
Update unit testhttps://github.com/plotly/plotly.js/pull/1544/commits/b47c7afb6bf851cf2ddb87f34436c210b8cf7051
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
b47c7afhttps://github.com/plotly/plotly.js/pull/1544/commits/b47c7afb6bf851cf2ddb87f34436c210b8cf7051
https://github.com/plotly/plotly.js/tree/b47c7afb6bf851cf2ddb87f34436c210b8cf7051
Refactor the changeshttps://github.com/plotly/plotly.js/pull/1544/commits/e8941d6367dd138e54d9c89aecd8caf824c1af16
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
e8941d6https://github.com/plotly/plotly.js/pull/1544/commits/e8941d6367dd138e54d9c89aecd8caf824c1af16
https://github.com/plotly/plotly.js/tree/e8941d6367dd138e54d9c89aecd8caf824c1af16
Build the lookup map for initialized categorieshttps://github.com/plotly/plotly.js/pull/1544/commits/b3fb03d45b8b46fb81e0e7c6e8530d50d8f1f83e
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
b3fb03dhttps://github.com/plotly/plotly.js/pull/1544/commits/b3fb03d45b8b46fb81e0e7c6e8530d50d8f1f83e
https://github.com/plotly/plotly.js/tree/b3fb03d45b8b46fb81e0e7c6e8530d50d8f1f83e
Reset the lookup map when the categories are resethttps://github.com/plotly/plotly.js/pull/1544/commits/2992126c335b2182e00f6b69732ae0edb6a020d7
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
2992126https://github.com/plotly/plotly.js/pull/1544/commits/2992126c335b2182e00f6b69732ae0edb6a020d7
https://github.com/plotly/plotly.js/tree/2992126c335b2182e00f6b69732ae0edb6a020d7
Optimize the scatter trace sorting comparator with maphttps://github.com/plotly/plotly.js/pull/1544/commits/989f07a67091733f9b1621de48fee6ea6660142c
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
989f07ahttps://github.com/plotly/plotly.js/pull/1544/commits/989f07a67091733f9b1621de48fee6ea6660142c
https://github.com/plotly/plotly.js/tree/989f07a67091733f9b1621de48fee6ea6660142c
Merge remote-tracking branch 'origin/master' into perf-setcategoryindexhttps://github.com/plotly/plotly.js/pull/1544/commits/91cfaa42ed987eb745da06d5ef75a68936a7cb35
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
91cfaa4https://github.com/plotly/plotly.js/pull/1544/commits/91cfaa42ed987eb745da06d5ef75a68936a7cb35
https://github.com/plotly/plotly.js/tree/91cfaa42ed987eb745da06d5ef75a68936a7cb35
Clean ESLint errors in CIhttps://github.com/plotly/plotly.js/pull/1544/commits/abcd729299f735e37391306e7abb8fb2ace66b4b
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
abcd729https://github.com/plotly/plotly.js/pull/1544/commits/abcd729299f735e37391306e7abb8fb2ace66b4b
https://github.com/plotly/plotly.js/tree/abcd729299f735e37391306e7abb8fb2ace66b4b
getCategoryIndex falls back to the former implementation to fix the failed unit test casehttps://github.com/plotly/plotly.js/pull/1544/commits/153f547810a48c408fa32a08808ba6bef40e075b
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
153f547https://github.com/plotly/plotly.js/pull/1544/commits/153f547810a48c408fa32a08808ba6bef40e075b
https://github.com/plotly/plotly.js/tree/153f547810a48c408fa32a08808ba6bef40e075b
Fix another problem in getCategoryIndexhttps://github.com/plotly/plotly.js/pull/1544/commits/ff043b458a6e6d95dc26399bc9f6a92486571880
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
ff043b4https://github.com/plotly/plotly.js/pull/1544/commits/ff043b458a6e6d95dc26399bc9f6a92486571880
https://github.com/plotly/plotly.js/tree/ff043b458a6e6d95dc26399bc9f6a92486571880
Add commentshttps://github.com/plotly/plotly.js/pull/1544/commits/c32163e63babdea0fe1d018dcb5254e6279f1bd0
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
c32163ehttps://github.com/plotly/plotly.js/pull/1544/commits/c32163e63babdea0fe1d018dcb5254e6279f1bd0
https://github.com/plotly/plotly.js/tree/c32163e63babdea0fe1d018dcb5254e6279f1bd0
Remove the fallback to indexOf search in getCategoryIndex, update the mock object in unit test insteadhttps://github.com/plotly/plotly.js/pull/1544/commits/d2be6c94f3291c42666bf5c3f086968f42010ba2
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
d2be6c9https://github.com/plotly/plotly.js/pull/1544/commits/d2be6c94f3291c42666bf5c3f086968f42010ba2
https://github.com/plotly/plotly.js/tree/d2be6c94f3291c42666bf5c3f086968f42010ba2
Remove out of date commentshttps://github.com/plotly/plotly.js/pull/1544/commits/14d66495c2f3f889856ae0db7513012904835038
https://github.com/hy9be
hy9behttps://github.com/plotly/plotly.js/commits?author=hy9be
14d6649https://github.com/plotly/plotly.js/pull/1544/commits/14d66495c2f3f889856ae0db7513012904835038
https://github.com/plotly/plotly.js/tree/14d66495c2f3f889856ae0db7513012904835038
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.