Dynamic Method Instrumentation for Java Web Application Performance Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveperformance testing completenessVSAvoidinstrumentation overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

2Device complexity

If random sampling of methods is used for testing, then device complexity is reduced, but measurement precision deteriorates due to incomplete information

Engineering Contradiction:
Improveinstrumentation overheadVSAvoidperformance diagnostic quality
Core Design Contradiction:
Device complexityVSMeasurement precision

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If iterative testing with expanding method subsets is performed, then measurement precision is improved, but productivity decreases due to repeated testing cycles

Engineering Contradiction:
Improveperformance analysis accuracyVSAvoidtesting efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10241901B2Web application performance testing
Publication Date: 2019.03.26 ORACLE INT CORP
  • US10241901B2 patent drawing
  • US10241901B2 patent drawing
  • US10241901B2 patent drawing

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.