Dynamic Runtime Profiling via Machine Code Hooking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing profiling methods, such as sampling and instrumented profilers, either lack precision or require significant modifications to the program, disrupting its runtime performance or requiring special builds, which limits their effectiveness in capturing complete performance characteristics.

Innovation Solution

Dynamic instrumentation during runtime, where function entrance and exit profiling hooks are selectively inserted and removed from a program without modifying its binary, allowing for precise profiling of selected functions by modifying machine-level instructions in system memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If instrumented profilers are used to collect complete profiling information, then measurement precision is improved, but device complexity increases due to requiring special builds and binary modifications

Engineering Contradiction:
Improveprofiling information completenessVSAvoidbuild process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements dynamic instrumentation that allows the profiler to adapt its behavior at runtime. The system can selectively instrument specific functions based on profiling needs, dynamically adding or removing instrumentation hooks without requiring a complete rebuild. This dynamic approach resolves the contradiction by making the profiling system flexible rather than static, allowing complete profiling information collection only when necessary while maintaining simplicity during normal operation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the state of instrumentation from a fixed build-time parameter to a runtime-controllable parameter. By allowing instrumentation to be enabled, disabled, or selectively applied to specific functions during execution, the system can transition between high-precision profiling mode and low-overhead normal mode, resolving the contradiction between measurement precision and device complexity.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If instrumentation hooks are inserted into the binary, then measurement precision is improved, but reliability deteriorates due to potential performance distortion

Engineering Contradiction:
Improveprofiling data accuracyVSAvoidruntime performance stability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent applies partial instrumentation by selectively instrumenting only specific functions or code paths rather than the entire program. This partial action approach maintains measurement precision for critical functions while minimizing the overall impact on runtime performance, thus resolving the contradiction between profiling accuracy and performance stability.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system can periodically enable or disable instrumentation based on profiling needs, rather than maintaining constant instrumentation. This periodic action allows complete and accurate profiling data collection during specific measurement periods while maintaining normal performance during other periods, resolving the contradiction between measurement precision and reliability.

Inventive Principle:
Principle #19Periodic action

3Ease of operation

If sampling profilers are used to minimize disruption, then ease of operation is improved, but measurement precision deteriorates due to regular time interval sampling

Engineering Contradiction:
Improveprofiler applicabilityVSAvoidperformance characteristic accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent segments the profiling approach by combining elements of both sampling and instrumented profiling. It uses sampling for broad coverage and ease of operation, then selectively applies instrumented profiling to specific functions or time periods when complete precision is needed. This segmentation resolves the contradiction by allowing the system to operate in different modes depending on the specific profiling requirements.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9575864B2Function-level dynamic instrumentation
Publication Date: 2017.02.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9575864B2 patent drawing
  • US9575864B2 patent drawing
  • US9575864B2 patent drawing

AI summary

Methods for dynamically instrumenting a program while the program is executing are described. In some embodiments, profiling hooks may be selectively inserted into and removed from a program while the program is running. The hooks may gather profiling information, such as the frequency and duration of function calls, for a selected set of functions. The hooks may be inserted into the program without requiring a special build or modifications to the binary by modifying machine-level instructions for the program stored in system memory. The ability to selectively insert instrumentation into the machine-level instructions stored in the system memory allows a set of functions to be selected during execution of the program and hooks for each function of the set of functions to be dynamically inserted or removed during execution of the program to precisely capture profiling information for the set of functions.