Proxy Server Caching for Browser Benchmarking Accuracy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing browser benchmarking systems are inefficient as they fail to isolate server-side performance impacts on client-side performance, often use non-real-world data, and lack effective data change control, leading to inaccurate performance metrics.
Innovation Solution
A benchmarking system that utilizes a proxy server to minimize server-side performance impact by caching request-response pairs in a record mode and serving responses from the cache in a replay mode, allowing for accurate measurement of client-side performance metrics like TTI, DD time, and E2E time, while controlling data changes through a shimming mode.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If prior browser benchmarking systems are used, then benchmarking can be performed, but the metrics are inaccurate because server-side performance impacts client-side performance measurements
Solution Approach 1:
The patent extracts the server-side processing from the benchmarking measurement chain by using a proxy server to intercept and serve cached responses, preventing server-side performance variations from affecting client-side performance measurements. The server is completely removed from the critical measurement path.
Solution Approach 2:
The patent introduces a proxy server as an intermediary between the client and the application server. This mediator caches request-response pairs and serves them to the client, isolating the client-side performance measurement from server-side performance fluctuations.
2Adaptability or versatility
If web pages are dynamic with changing content, then real-world scenarios are reflected, but benchmarking results become inaccurate due to data changes during testing
Solution Approach 1:
The patent performs preliminary actions by capturing request-response pairs during a record phase before the actual benchmarking replay phase. This pre-caching of data ensures that the same data is used throughout benchmarking, preventing data changes from affecting measurement consistency.
Solution Approach 2:
The patent creates copies of real-world request-response pairs during the record phase and uses these copies during the replay phase. This copying mechanism allows benchmarking with real-world data patterns while ensuring data consistency, as the cached copies remain static during measurement.
3Reliability
If real-world data is used for benchmarking, then production environment performance can be assessed, but data changes during testing compromise measurement reliability
Solution Approach 1:
The patent extracts the dynamic data source (live server) from the benchmarking process and replaces it with static cached data. This extraction maintains the reliability of production environment assessment using real-world data patterns while ensuring data stability through caching.
Solution Approach 2:
The patent performs preliminary data capture in the record phase, storing request-response pairs before the replay phase. This preliminary action ensures that the same stable data is used throughout benchmarking, maintaining both reliability of assessment and stability of data composition.
Data Source
AI summary
The disclosure is directed to a benchmarking system for measuring performance of a client-side application, e.g., a web browser, in processing an application, e.g., rendering a web page of a social networking application. The benchmarking process is executed in multiple modes, e.g., a record mode and a replay mode. In the record mode, the benchmarking system warms up a proxy server by storing request-response pairs between a client device and an app server in a cache of the proxy server. In the replay mode, the benchmarking system replays the requests to obtain the responses from the cache of the proxy server and records various metrics that indicate a performance of the client-side application in processing the responses, e.g., rendering the web page.


