Performance optimization for Web Checkout Experience #4102
Replies: 21 comments 36 replies
-
Proposal: Performance Optimization for Web Checkout Experience #4102 |
Beta Was this translation helpful? Give feedback.
-
with hyperswitch app server installed locally I went ahead and followed instructions for web simulation but the UI elements would not load i have checked all dependencies and made sure i followed all commands i have attached the snapshot of localhost 9060 please point out the mistakes I made |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
To achieve a 30% reduction in Final Render time for the Hyperswitch Web Checkout, you can consider the following strategies:
By implementing these strategies, you can work towards achieving the targeted 30% reduction in Final Render time for the Hyperswitch Web Checkout, thereby improving the overall payment experience for users. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
To address the problem of reducing the Final Render Time of the Hyperswitch Web Checkout by 30%, here is a proposed solution:
By following these steps, the goal of reducing the Final Render Time of the Hyperswitch Web Checkout by 30% can be achieved, leading to a faster and more efficient payment experience for users. |
Beta Was this translation helpful? Give feedback.
-
To reduce the final render time by 30%, I came up with some suggestions.
|
Beta Was this translation helpful? Give feedback.
-
Proposal: Performance Optimization for Web Checkout Experience #4102 Payload Trimming:
Render Streaming:
Resource Prioritization:
Network Resilience:
Payload Splitting:
My Resume- |
Beta Was this translation helpful? Give feedback.
-
Hey @pavanrk123 @Freak0802 I figured the info on the doc needs rewriting, setup worked for me when I looked at
If for some reason HYPERSWITCH_SERVER_URL doesn't work with One more issue I saw, prompt doesn't ask for values again, in case we enter the wrong value for the key. |
Beta Was this translation helpful? Give feedback.
-
To reduce the Final Render time of the Hyperswitch Web Checkout by 30%, we can focus on optimizing several aspects of the checkout process:
|
Beta Was this translation helpful? Give feedback.
-
Proposal: Performance Optimization for Web Checkout Experience Suggestions to achieve performance optimization:
Expected Outcome: |
Beta Was this translation helpful? Give feedback.
-
Hey @pavanrk123 @Freak0802 My Proposal for reduce the final render to 30% Below are the Some Suggestions to achieve the final render to 30% are:
|
Beta Was this translation helpful? Give feedback.
-
Proposal for #41021st Step: I set up Hyperswitch using points mentioned in the documentation 2nd Step: Based on the specific criteria outlined for selecting a performance testing tool, Apache JMeter stands out among performance testing tools for several reasons
3rd Step:Upon UI rendering, waterfall events emerge. 4th Step:Simulate and establish TP90 (90th percentile) To increase rendering speed, focus on optimizing the following key areas highlighted by Lighthouse:
Some of my suggestions to reduce the Final Render time by 30%
|
Beta Was this translation helpful? Give feedback.
-
ProposalObjective:To ensure seamless integration both now and in the future, reducing the final render time by 30% will enhance the user experience. Key Results:
Scope:Considering the timeline and purpose of this improvement i.e., to check candidate capabilities and further using this proposal to implement to make an actual change, this will need a local setup and research on how binding between client and server is actually working. We are going to measure the success of the project with metric as a render time and its value will be 30%. Debugging Tool:Chrome dev tools: Network, Lighthouse and Profiling. Researched steps:Step 1:
Step 2:After the project was served at port 9060, I decided to create the production build to examine the bundle size and various assets in the network tab. To do this, I ran the command Step 3:This is now the time to understand how things are working or say how module was working and how coupling was happening internally.
Consider hyper-js is same as stripe-js stripe-js/src/index.ts at master · stripe/stripe-js (github.com) i.e., it loads the main script. Now this script can be loaded in two ways"
One issue I found in the Now can I use SSR here to render the intial element and then hydrate it, answer is no, it does support SSR but not the main functionality.
Step 4:My question now was, if we have a dependency on I figured react-hyper-js job is to simply create few divs and call the hyper switch client and request the different resources on an element basis or render it accordingly. Findings:From the step 4 of research, I started fiddling with lighthouse and network tab to understand the workflow and few of the findings were.
Big ChangeFor code splitting, we can use indexing-based framework like Outcome:Considering scope of the goal included improving the user experience based on making the webapp performant, I was able to reduce the final render time by 30% and hoping this would be useful but there is a lot to learn and a lot to improve. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
DiagnosticsPotential reasons for slower rendering and its corresponding solutions
ConclusionThe above are the major possible reasons for slowing the performance of the site and the suggested solution has been delivered with an overview of the code and simulation of the checkout experience. Implementing the above suggested solutions would improve the performance of the site hence improving the overall speed index of the site, thus improving the performance over 30% !! Know more about me: Prajeeth's Portfolio 😎 |
Beta Was this translation helpful? Give feedback.
-
To address the challenge of optimizing the Final Render time of the Hyperswitch Web Checkout, we can follow a systematic approach. Here's how we can tackle it: Setup Hyperswitch Locally: python Sample code to simulate performance tests and measure Final Render timeimport performance_testing_tool Set up performance testing tooltool = performance_testing_tool.PerformanceTestingTool() Simulate performance teststest_results = tool.run_tests(hyperswitch_web_checkout) Generate waterfall chartwaterfall_chart = tool.generate_waterfall_chart(test_results) Calculate TP90 Final Render Timetp90_final_render_time = tool.calculate_tp90_final_render_time(test_results) Implement optimization strategiesoptimization_results = optimize_final_render_time(hyperswitch_web_checkout) Measure performance impactoptimized_test_results = tool.run_tests(hyperswitch_web_checkout) Check if target reduction of 30% is achievedif optimized_test_results.final_render_time < (test_results.final_render_time * 0.7): Create proposal and document findingsproposal = create_optimization_proposal(optimization_results) |
Beta Was this translation helpful? Give feedback.
-
GitHub Issue Proposal: Reduce Final Render Time of Hyperswitch Web Checkout by 30% #4102 Proposal Summary:
javascript // Asynchronously load non-critical script loadScriptAsync('https://analytics.example.com/analytics.js'); html Code Example (JS Minification):html <script src="script.js"></script> <script src="script.min.js"></script>
javascript // Batch API requests using fetch const urlsToFetch = ['https://api.example.com/data1', 'https://api.example.com/data2']; javascript html 6. Server-Side Rendering (SSR) for Critical Content Code Example (React SSR):javascript |
Beta Was this translation helpful? Give feedback.
-
Proposal to reduce the rendering to 30%#4102 Objective: To guarantee smooth integration presently and in the future, achieving a 30% reduction in the final render time will be paramount for enhancing user experience. Key Results: Maintain seamless integration while simultaneously boosting user experience with a targeted 30% enhancement in final render time. Scope: Utilize Chrome dev tools such as Network, Lighthouse, and Profiling for debugging and performance monitoring. Researched Steps: Step 1: Set up a local environment following the documented instructions provided by Hyperswitch. Execute production builds to assess bundle size and network assets using npm commands such as npm run build:playground and npm run build:prod. Examine the dependencies required by the client application, including "@juspay-tech/hyper-js", "@juspay-tech/hyperswitch-node", and "@juspay-tech/react-hyper-js". Optimize the client-side application using various techniques: Prioritize loading of critical resources to improve First Contentful Paint (FCP) and Largest Contentful Paint (LCP) metrics. Enable browser caching and async loading of resources to enhance rendering speed. By implementing the proposed strategies and optimizations, we aim to achieve a significant improvement in the render time of our application, thereby enhancing the user experience and ensuring seamless integration. Through diligent testing and monitoring using Chrome dev tools, we will continuously refine our approach to meet the defined objectives and deliver a high-performance application. |
Beta Was this translation helpful? Give feedback.
-
I would like to work on this. |
Beta Was this translation helpful? Give feedback.
-
why does it look like most people just Copy Pasted from ChatGPT lmao? |
Beta Was this translation helpful? Give feedback.
-
Context
The Hyperswitch Web Checkout plays a very important role in the user’s payment journey. It is an iFrame which provides an inclusive, consistent and a blended payment experience for the user. Learn more about it here or read the blog here
As we continue to support more and more features and payment methods across the world, it is very critical to keep the payment experience lightweight and fast. The faster the payment experience loads for the customer the higher the conversion rates.
Problem
The performance of the Hyperswitch Web Checkout for a smooth payment experience is measured by two metrics:
- First Render: The first render is the time taken from initiation of SDK to mounting of the iFrame. It depends upon download of JS file, fetching of assets and many more steps.
- Final Render: The final render is the time taken from initiation of SDK to display of all payment methods. It depends on multiple aspects such as number of payment methods to load, speed of internet on the client, number of API calls, API latencies and many more factors.
The target is to reduce the Final Render time by 30%
How to get started?
Expected Outcome
Find avenues to reduce Final Render Time by 30% and share your proposal as a Github issue under this discussion.
All the best !!!
Beta Was this translation helpful? Give feedback.
All reactions