René's URL Explorer Experiment


Title: Improve ReactPy Performance · Issue #557 · reactive-python/reactpy · GitHub

Open Graph Title: Improve ReactPy Performance · Issue #557 · reactive-python/reactpy

X Title: Improve ReactPy Performance · Issue #557 · reactive-python/reactpy

Description: Proposed Changes Find the hot spots in ReactPy's code-base in order to identify where attention should be focused. Once we know this, we will be able to focus our efforts on performance improvements. Implementation Details Analysis Use Y...

Open Graph Description: Proposed Changes Find the hot spots in ReactPy's code-base in order to identify where attention should be focused. Once we know this, we will be able to focus our efforts on performance improvement...

X Description: Proposed Changes Find the hot spots in ReactPy's code-base in order to identify where attention should be focused. Once we know this, we will be able to focus our efforts on performance improve...

Opengraph URL: https://github.com/reactive-python/reactpy/issues/557

X: @github

direct link

Domain: patch-diff.githubusercontent.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Improve ReactPy Performance","articleBody":"# Proposed Changes\r\n\r\nFind the hot spots in ReactPy's code-base in order to identify where attention should be focused. Once we know this, we will be able to focus our efforts on performance improvements.\r\n\r\n# Implementation Details\r\n\r\n### Analysis\r\nUse [Yappi](https://github.com/sumerc/yappi) to profile ReactPy dispatchers and determine what is taking the most significant amounts of time.\r\n\r\nWe will also need to figure out how to test websocket concurrency. It seems like there are very few tools for this, especially for our applications. We're probably going to have to create out own benchmarking tools. Here's some resources we might want to read through later.\r\n- https://healeycodes.com/websocket-benchmarker\r\n- https://kemalcr.com/blog/2016/11/13/benchmarking-and-scaling-websockets-handling-60000-concurrent-connections/\r\n- https://ma.ttias.be/benchmarking-websocket-server-performance-with-artillery/\r\n\r\n### Sync and Async\r\n\r\nCurrently, ReactPy relies on synchronous code to properly queue renders. Sync code is known to blocks the asyncio event loop, which causes concurrency issues.\r\n\r\nSee section \"Two Worlds of Python\" for why this is a problem:\r\nhttps://arunrocks.com/a-guide-to-asgi-in-django-30-and-its-performance/\r\n\r\nAll synchronous functions should be converted to async within ReactPy core. They could alternatively be threadpooled. See reactive-python/reactpy-django#31 for the original discussion on this.\r\n\r\n### Extreme Countermeasures\r\nIf optimizations can't be suitably performed within Python, consider writing C/C++ code exposed via Python APIs that performs the same functionality as the non-performant parts of IDOM.\r","author":{"url":"https://github.com/Archmonger","@type":"Person","name":"Archmonger"},"datePublished":"2021-12-26T09:12:17.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/557/reactpy/issues/557"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:0f89deec-7de3-1263-6c16-f8dba5792a8c
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id80B0:1F2208:467E28F:60B5694:697803EF
html-safe-noncea573c1cdcaf4311193bae821f7059f816600dd3c18354b10a1c3b73174aa731a
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MEIwOjFGMjIwODo0NjdFMjhGOjYwQjU2OTQ6Njk3ODAzRUYiLCJ2aXNpdG9yX2lkIjoiMzI4NTE2NTcwNDE3MjAxMjUyNyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac732a4f81f33644608f50ca9bd67a6e3dda5d38d5580aa45aef17f66854c01a21
hovercard-subject-tagissue:1088730399
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/reactive-python/reactpy/557/issue_layout
twitter:imagehttps://opengraph.githubassets.com/d706e7e6eaac5d4350cc23b82e23e35221e64233afb44f1d337fe7864b1bfc44/reactive-python/reactpy/issues/557
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/d706e7e6eaac5d4350cc23b82e23e35221e64233afb44f1d337fe7864b1bfc44/reactive-python/reactpy/issues/557
og:image:altProposed Changes Find the hot spots in ReactPy's code-base in order to identify where attention should be focused. Once we know this, we will be able to focus our efforts on performance improvement...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameArchmonger
hostnamegithub.com
expected-hostnamegithub.com
None9306bf4a8c8a88a5945f83e25033fc5e6fb7a05f40c5fca300ac67db7fee56ae
turbo-cache-controlno-preview
go-importgithub.com/reactive-python/reactpy git https://github.com/reactive-python/reactpy.git
octolytics-dimension-user_id106191177
octolytics-dimension-user_loginreactive-python
octolytics-dimension-repository_id171410703
octolytics-dimension-repository_nworeactive-python/reactpy
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id171410703
octolytics-dimension-repository_network_root_nworeactive-python/reactpy
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
releaseebcec36a0fcd90aa18ad42cdc7e8952475890ee5
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/reactive-python/reactpy/issues/557#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Freactive-python%2Freactpy%2Fissues%2F557
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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/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://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Freactive-python%2Freactpy%2Fissues%2F557
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=reactive-python%2Freactpy
Reloadhttps://patch-diff.githubusercontent.com/reactive-python/reactpy/issues/557
Reloadhttps://patch-diff.githubusercontent.com/reactive-python/reactpy/issues/557
Reloadhttps://patch-diff.githubusercontent.com/reactive-python/reactpy/issues/557
reactive-python https://patch-diff.githubusercontent.com/reactive-python
reactpyhttps://patch-diff.githubusercontent.com/reactive-python/reactpy
Please reload this pagehttps://patch-diff.githubusercontent.com/reactive-python/reactpy/issues/557
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Freactive-python%2Freactpy
Fork 332 https://patch-diff.githubusercontent.com/login?return_to=%2Freactive-python%2Freactpy
Star 8.2k https://patch-diff.githubusercontent.com/login?return_to=%2Freactive-python%2Freactpy
Code https://patch-diff.githubusercontent.com/reactive-python/reactpy
Issues 50 https://patch-diff.githubusercontent.com/reactive-python/reactpy/issues
Pull requests 2 https://patch-diff.githubusercontent.com/reactive-python/reactpy/pulls
Discussions https://patch-diff.githubusercontent.com/reactive-python/reactpy/discussions
Actions https://patch-diff.githubusercontent.com/reactive-python/reactpy/actions
Security 0 https://patch-diff.githubusercontent.com/reactive-python/reactpy/security
Insights https://patch-diff.githubusercontent.com/reactive-python/reactpy/pulse
Code https://patch-diff.githubusercontent.com/reactive-python/reactpy
Issues https://patch-diff.githubusercontent.com/reactive-python/reactpy/issues
Pull requests https://patch-diff.githubusercontent.com/reactive-python/reactpy/pulls
Discussions https://patch-diff.githubusercontent.com/reactive-python/reactpy/discussions
Actions https://patch-diff.githubusercontent.com/reactive-python/reactpy/actions
Security https://patch-diff.githubusercontent.com/reactive-python/reactpy/security
Insights https://patch-diff.githubusercontent.com/reactive-python/reactpy/pulse
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/reactive-python/reactpy/issues/557
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/reactive-python/reactpy/issues/557
#1165https://github.com/reactive-python/reactpy/pull/1165
Improve ReactPy Performancehttps://patch-diff.githubusercontent.com/reactive-python/reactpy/issues/557#top
#1165https://github.com/reactive-python/reactpy/pull/1165
priority-3-lowMay be resolved one any timeline.https://github.com/reactive-python/reactpy/issues?q=state%3Aopen%20label%3A%22priority-3-low%22
type-investigationAbout research and gathering informationhttps://github.com/reactive-python/reactpy/issues?q=state%3Aopen%20label%3A%22type-investigation%22
https://github.com/Archmonger
https://github.com/Archmonger
Archmongerhttps://github.com/Archmonger
on Dec 26, 2021https://github.com/reactive-python/reactpy/issues/557#issue-1088730399
Yappihttps://github.com/sumerc/yappi
https://healeycodes.com/websocket-benchmarkerhttps://healeycodes.com/websocket-benchmarker
https://kemalcr.com/blog/2016/11/13/benchmarking-and-scaling-websockets-handling-60000-concurrent-connections/https://kemalcr.com/blog/2016/11/13/benchmarking-and-scaling-websockets-handling-60000-concurrent-connections/
https://ma.ttias.be/benchmarking-websocket-server-performance-with-artillery/https://ma.ttias.be/benchmarking-websocket-server-performance-with-artillery/
https://arunrocks.com/a-guide-to-asgi-in-django-30-and-its-performance/https://arunrocks.com/a-guide-to-asgi-in-django-30-and-its-performance/
reactive-python/reactpy-django#31https://github.com/reactive-python/reactpy-django/issues/31
priority-3-lowMay be resolved one any timeline.https://github.com/reactive-python/reactpy/issues?q=state%3Aopen%20label%3A%22priority-3-low%22
type-investigationAbout research and gathering informationhttps://github.com/reactive-python/reactpy/issues?q=state%3Aopen%20label%3A%22type-investigation%22
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.