Dynamic Method Instrumentation for Java Web Application Performance Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Java-based web application performance testing tools either provide incomplete information through lightweight sampling or require significant overhead and time with full instrumentation, as they either randomly select methods to test or test all methods without strategic focus.
Innovation Solution
A system that dynamically instruments key critical methods within a Java-based web application, generating instrumented call trees and stack traces to identify and focus on methods taking longer than a predetermined time, allowing for targeted testing with minimal overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If full instrumentation is used to test all methods, then measurement precision is improved, but device complexity and time consumption increase significantly
Solution Approach 1:
The patent segments the instrumentation process into two distinct phases: a sampling phase that identifies performance-critical methods, and a focused instrumentation phase that instruments only those identified methods. This segmentation allows the system to achieve comprehensive performance insights without the overhead of instrumenting all methods, thus resolving the contradiction between measurement precision and device complexity.
Solution Approach 2:
The patent applies partial action by instrumenting only a subset of methods that are identified as performance-critical through initial sampling, rather than instrumenting all methods. This partial instrumentation approach provides sufficient performance diagnostic information while significantly reducing the complexity and overhead associated with full instrumentation.
2Device complexity
If random sampling of methods is used for testing, then device complexity is reduced, but measurement precision deteriorates due to incomplete information
Solution Approach 1:
The patent implements a feedback mechanism where initial sampling results inform the selection of methods for focused instrumentation. The system uses performance data from the sampling phase to identify and prioritize methods that require detailed instrumentation, creating a feedback loop that enhances measurement precision while maintaining low device complexity.
Solution Approach 2:
The patent performs preliminary sampling action before the main instrumentation phase. This preliminary action identifies performance-critical methods that should be instrumented in detail, ensuring that the subsequent focused instrumentation targets the most relevant methods and achieves high measurement precision without excessive complexity.
3Measurement precision
If iterative testing with expanding method subsets is performed, then measurement precision is improved, but productivity decreases due to repeated testing cycles
Solution Approach 1:
The patent performs preliminary sampling that identifies performance-critical methods before the main testing phase. This preliminary identification allows the system to focus instrumentation efforts on the most relevant methods from the outset, avoiding the need for multiple iterative testing cycles and thereby maintaining high productivity while achieving high measurement precision.
Data Source
AI summary
A system for performance testing a web application initializes to be instrumented a subset of methods of the web application to be tested in response to a request, and then tests the application based on the subset of methods. The system generates an instrumented call tree and corresponding stack traces for each request in response to the testing, and determines one or more methods that take longer than a predetermined time period to execute using the instrumented call trees and the stack traces. The system then determines additional methods to be tested and adds the determined additional methods to the subset of methods and repeats the testing.


