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: 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 on big amount of traces. The unit test failed at some range_slider cases but I cannot figure out how my changes are related to those test cases.

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/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:dac66c30-b2f7-eb07-ffad-afe22810868d
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idD3D0:2F3AB6:6049F3F:7FD433B:6A5DD4E4
html-safe-nonce1c183da4373074b42cb3f0099d853dacac71cd7f20ea4cfa194df8de959de28a
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEM0QwOjJGM0FCNjo2MDQ5RjNGOjdGRDQzM0I6NkE1REQ0RTQiLCJ2aXNpdG9yX2lkIjoiNzU1OTI5MDQ0MzAyMjU4NzEwOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacf1294e9b30eba8e0c50a15efe00ce32db99e107df71a7c73cc338db258c428c5
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/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/plotly/plotly.js/pull/1544/files
twitter:imagehttps://avatars.githubusercontent.com/u/3392907?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/3392907?s=400&v=4
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:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-preview
diff-viewunified
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 full-width
disable-turbotrue
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/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fplotly%2Fplotly.js%2Fpull%2F1544%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%2Fplotly%2Fplotly.js%2Fpull%2F1544%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=plotly%2Fplotly.js
Reloadhttps://github.com/plotly/plotly.js/pull/1544/files
Reloadhttps://github.com/plotly/plotly.js/pull/1544/files
Reloadhttps://github.com/plotly/plotly.js/pull/1544/files
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/files
plotly https://github.com/plotly
plotly.jshttps://github.com/plotly/plotly.js
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/files
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
Sign up for GitHub https://github.com/signup?return_to=%2Fplotly%2Fplotly.js%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fplotly%2Fplotly.js%2Fissues%2Fnew%2Fchoose
alexcjohnsonhttps://github.com/alexcjohnson
plotly:masterhttps://github.com/plotly/plotly.js/tree/master
hy9be:perf-setcategoryindexhttps://github.com/hy9be/plotly.js/tree/perf-setcategoryindex
Conversation 25 https://github.com/plotly/plotly.js/pull/1544
Commits 13 https://github.com/plotly/plotly.js/pull/1544/commits
Checks 0 https://github.com/plotly/plotly.js/pull/1544/checks
Files changed https://github.com/plotly/plotly.js/pull/1544/files
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/files
Optimize performance of setCategoryIndex https://github.com/plotly/plotly.js/pull/1544/files#top
Show all changes 13 commits https://github.com/plotly/plotly.js/pull/1544/files
40e69d3 Optimize performance of setCategoryIndex hy9be Mar 31, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/40e69d39ebd4ee0f28918d58c738c9f19eaf4a2c
b47c7af Update unit test hy9be Mar 31, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/b47c7afb6bf851cf2ddb87f34436c210b8cf7051
e8941d6 Refactor the changes hy9be Apr 3, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/e8941d6367dd138e54d9c89aecd8caf824c1af16
b3fb03d Build the lookup map for initialized categories hy9be Apr 3, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/b3fb03d45b8b46fb81e0e7c6e8530d50d8f1f83e
2992126 Reset the lookup map when the categories are reset hy9be Apr 3, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/2992126c335b2182e00f6b69732ae0edb6a020d7
989f07a Optimize the scatter trace sorting comparator with map hy9be Apr 5, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/989f07a67091733f9b1621de48fee6ea6660142c
91cfaa4 Merge remote-tracking branch 'origin/master' into perf-setcategoryindex hy9be Apr 8, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/91cfaa42ed987eb745da06d5ef75a68936a7cb35
abcd729 Clean ESLint errors in CI hy9be Apr 8, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/abcd729299f735e37391306e7abb8fb2ace66b4b
153f547 getCategoryIndex falls back to the former implementation to fix the f… hy9be Apr 8, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/153f547810a48c408fa32a08808ba6bef40e075b
ff043b4 Fix another problem in getCategoryIndex hy9be Apr 8, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/ff043b458a6e6d95dc26399bc9f6a92486571880
c32163e Add comments hy9be Apr 8, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/c32163e63babdea0fe1d018dcb5254e6279f1bd0
d2be6c9 Remove the fallback to indexOf search in getCategoryIndex, update the… hy9be Apr 10, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/d2be6c94f3291c42666bf5c3f086968f42010ba2
14d6649 Remove out of date comments hy9be Apr 10, 2017 https://github.com/plotly/plotly.js/pull/1544/commits/14d66495c2f3f889856ae0db7513012904835038
Clear filters https://github.com/plotly/plotly.js/pull/1544/files
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/files
Please reload this pagehttps://github.com/plotly/plotly.js/pull/1544/files
set_convert.js https://github.com/plotly/plotly.js/pull/1544/files#diff-10cca8c9eea1420164e53bbf7ed6b1bef79c17ad4116f5ecc079ed72f725da64
plots.js https://github.com/plotly/plotly.js/pull/1544/files#diff-bb59a2aa90fd14ef3218544010e7fe42f370e10f0c8ee702b3f85ab86887d970
plot.js https://github.com/plotly/plotly.js/pull/1544/files#diff-a3243ea6027b49a0f58a8322452fa3a9a492ab742663191ec03c77689386fe92
axes_test.js https://github.com/plotly/plotly.js/pull/1544/files#diff-49b76cce481e5bce7093546f0260b025811410d6826842eee83019fc4b04e9bd
src/plots/cartesian/set_convert.jshttps://github.com/plotly/plotly.js/pull/1544/files#diff-10cca8c9eea1420164e53bbf7ed6b1bef79c17ad4116f5ecc079ed72f725da64
View file https://github.com/hy9be/plotly.js/blob/14d66495c2f3f889856ae0db7513012904835038/src/plots/cartesian/set_convert.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotly/plotly.js/pull/1544/{{ revealButtonHref }}
https://github.com/plotly/plotly.js/pull/1544/files#diff-10cca8c9eea1420164e53bbf7ed6b1bef79c17ad4116f5ecc079ed72f725da64
https://github.com/plotly/plotly.js/pull/1544/files#diff-10cca8c9eea1420164e53bbf7ed6b1bef79c17ad4116f5ecc079ed72f725da64
https://github.com/plotly/plotly.js/pull/1544/files#diff-10cca8c9eea1420164e53bbf7ed6b1bef79c17ad4116f5ecc079ed72f725da64
https://github.com/plotly/plotly.js/pull/1544/files#diff-10cca8c9eea1420164e53bbf7ed6b1bef79c17ad4116f5ecc079ed72f725da64
src/plots/plots.jshttps://github.com/plotly/plotly.js/pull/1544/files#diff-bb59a2aa90fd14ef3218544010e7fe42f370e10f0c8ee702b3f85ab86887d970
View file https://github.com/hy9be/plotly.js/blob/14d66495c2f3f889856ae0db7513012904835038/src/plots/plots.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotly/plotly.js/pull/1544/{{ revealButtonHref }}
https://github.com/plotly/plotly.js/pull/1544/files#diff-bb59a2aa90fd14ef3218544010e7fe42f370e10f0c8ee702b3f85ab86887d970
https://github.com/plotly/plotly.js/pull/1544/files#diff-bb59a2aa90fd14ef3218544010e7fe42f370e10f0c8ee702b3f85ab86887d970
https://github.com/plotly/plotly.js/pull/1544/files#diff-bb59a2aa90fd14ef3218544010e7fe42f370e10f0c8ee702b3f85ab86887d970
https://github.com/plotly/plotly.js/pull/1544/files#diff-bb59a2aa90fd14ef3218544010e7fe42f370e10f0c8ee702b3f85ab86887d970
src/traces/scatter/plot.jshttps://github.com/plotly/plotly.js/pull/1544/files#diff-a3243ea6027b49a0f58a8322452fa3a9a492ab742663191ec03c77689386fe92
View file https://github.com/hy9be/plotly.js/blob/14d66495c2f3f889856ae0db7513012904835038/src/traces/scatter/plot.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotly/plotly.js/pull/1544/{{ revealButtonHref }}
https://github.com/plotly/plotly.js/pull/1544/files#diff-a3243ea6027b49a0f58a8322452fa3a9a492ab742663191ec03c77689386fe92
https://github.com/plotly/plotly.js/pull/1544/files#diff-a3243ea6027b49a0f58a8322452fa3a9a492ab742663191ec03c77689386fe92
test/jasmine/tests/axes_test.jshttps://github.com/plotly/plotly.js/pull/1544/files#diff-49b76cce481e5bce7093546f0260b025811410d6826842eee83019fc4b04e9bd
View file https://github.com/hy9be/plotly.js/blob/14d66495c2f3f889856ae0db7513012904835038/test/jasmine/tests/axes_test.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotly/plotly.js/pull/1544/{{ revealButtonHref }}
https://github.com/plotly/plotly.js/pull/1544/files#diff-49b76cce481e5bce7093546f0260b025811410d6826842eee83019fc4b04e9bd
https://github.com/plotly/plotly.js/pull/1544/files#diff-49b76cce481e5bce7093546f0260b025811410d6826842eee83019fc4b04e9bd
https://github.com/plotly/plotly.js/pull/1544/files#diff-49b76cce481e5bce7093546f0260b025811410d6826842eee83019fc4b04e9bd
https://github.com/plotly/plotly.js/pull/1544/files#diff-49b76cce481e5bce7093546f0260b025811410d6826842eee83019fc4b04e9bd
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.