Dynamic Library Replacement for Runtime Method Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional observability tools in software development and production environments have limited visibility into the internal state of executable code, making it difficult to diagnose malfunctions, especially in production environments where detailed information capture is not always enabled, and replacing libraries for performance improvements can be costly and burdensome.

Innovation Solution

A dynamic library replacement technique that uses a client library to instrument executable code, capture traces, and analyze performance to identify and replace original methods with improved versions, allowing for runtime method and library replacement without interrupting the application or production environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional observability tools are used to collect information from executable code, then some level of monitoring is achieved, but the detail and fidelity of the collected information is insufficient for effective malfunction diagnosis

Engineering Contradiction:
Improveinformation detailVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

A native code instrumentation library serves as an intermediary between the executable code and the observability tools. This library intercepts method calls and executes native code versions that capture detailed information including local variables, stack traces, and performance metrics, providing high-fidelity data without requiring modifications to the original interpreted code.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes the level of instrumentation detail based on runtime conditions. When malfunctions are detected, the system increases information capture fidelity by activating detailed tracing and variable capture. During normal operation, less detailed monitoring is used to reduce overhead, thus adapting the measurement precision to actual needs.

Inventive Principle:
Principle #35Parameter changes

2Speed

If native code replacement libraries are deployed to improve performance, then execution speed improves, but predetermining performance benefits is costly and burdensome

Engineering Contradiction:
Improvecode execution speedVSAvoidperformance evaluation time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

Native code versions of frequently called methods are prepared in advance and stored in a library. The instrumentation system identifies candidate methods for replacement and pre-compiles their native code equivalents, so that when deployment occurs, the performance improvement is immediate without requiring runtime compilation or evaluation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system instruments the executable code to capture performance metrics and method call frequencies. This feedback information is used to identify which methods would benefit most from native code replacement, allowing the system to prioritize replacement of high-impact methods and track the performance improvements achieved.

Inventive Principle:
Principle #23Feedback

3Loss of information

If detailed information capture is enabled in production environments, then diagnosis capability improves, but system overhead and resource consumption increase

Engineering Contradiction:
Improveinformation completenessVSAvoidsystem overhead
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The instrumentation system is designed to be dynamic, allowing the level of detail captured to change based on runtime conditions. During normal operation, minimal instrumentation is active to reduce overhead. When errors or anomalies are detected, the system automatically increases the detail level of information capture, enabling comprehensive diagnosis only when needed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Instead of continuously capturing detailed information, the system uses periodic sampling and event-driven capture. Detailed traces are captured at specific intervals or triggered by specific events such as exceptions or performance thresholds, reducing overall resource consumption while maintaining diagnostic capability when issues occur.

Inventive Principle:
Principle #19Periodic action

4Productivity

If library replacement is performed to improve performance, then execution efficiency increases, but the process is costly and burdensome in production environments

Engineering Contradiction:
Improveexecution efficiencyVSAvoiddeployment complexity
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The native code instrumentation library acts as an intermediary layer that can be independently deployed and managed. Rather than replacing entire application libraries, the system introduces a separate native code layer that intercepts and accelerates specific method calls, simplifying the deployment process and reducing the burden on production environments.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11392483B2Dynamic library replacement technique
Publication Date: 2022.07.19 HENRY MARGARET
  • US11392483B2 patent drawing
  • US11392483B2 patent drawing
  • US11392483B2 patent drawing

AI summary

A dynamic library replacement technique enables replacement of original functions or methods of application libraries based on analysis of traces captured by a client library of an investigative platform. Traces captured from the user application are analyzed to identify the original methods of the user application that may be replaced by the client library. The original methods may be identified based on estimated performance improvements determined from the analysis of the captured traces. The improved method replacements and estimated performance improvements may be graphically presented to a user via a user interface (UI) infrastructure of the investigative platform. Replacement of the improved methods may be defined in the dynamic configuration or interactively via the UI infrastructure and continued performance monitoring reported. The specific performance for any method may be monitored along with a fidelity of the monitored method. For pure functions (methods) without side-effects, the improved replacement method and original application method may be compared for the same data.