Code Profiling System for Execution Anomaly Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The unpredictability and uncertainty in the execution of program code due to varying processor resources and external factors lead to performance inconsistencies, causing practical and financial hardships in performance-sensitive applications.

Innovation Solution

The implementation of a system that collects hardware-dependent metrics to identify and address execution anomalies, and uses hardware-independent metrics to predict performance on new hardware systems, ensuring consistency and optimizing code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware optimizations are applied to speed up code execution, then execution speed improves, but execution anomalies and unpredictability increase

Engineering Contradiction:
Improvecode execution speedVSAvoidexecution predictability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary profiling of program code to identify performance issues and execution anomalies before actual execution. By collecting hardware-dependent metrics and analyzing execution characteristics in advance, the system prepares optimization strategies that account for potential anomalies, thereby maintaining both speed improvements and execution predictability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where execution characteristics are measured during runtime, and this information is used to dynamically adjust execution strategies. The profiler collects metrics about actual execution behavior and feeds this back to modify code generation or execution parameters, ensuring that optimizations maintain predictable performance while achieving speed improvements.

Inventive Principle:
Principle #23Feedback

2Productivity

If code is optimized for one hardware system, then performance on that system improves, but performance on new hardware systems becomes unpredictable

Engineering Contradiction:
Improveexecution efficiencyVSAvoidhardware portability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system changes the parameters used for optimization from hardware-specific characteristics to hardware-independent execution characteristics. By profiling the actual runtime behavior of code and using these behavioral parameters for optimization instead of static hardware parameters, the optimized code maintains high performance across different hardware platforms while adapting to their specific characteristics.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The profiling and optimization system creates a universal approach that works across multiple hardware platforms. The system generates optimized code that is not tied to specific hardware features but rather to the execution characteristics observed during profiling, making the optimized code adaptable and efficient on various hardware systems including new architectures.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If hardware-dependent optimization techniques are used, then execution speed improves, but portability and adaptability to new hardware decrease

Engineering Contradiction:
Improveexecution speedVSAvoidhardware independence
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system replaces mechanical hardware-dependent optimization techniques with a software-based profiling and analysis approach. Instead of relying on hardware-specific instructions or architecture-dependent optimizations, the system uses software profilers to measure execution characteristics and generates optimized code based on these measurements, achieving speed improvements without sacrificing hardware independence.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9753731B1Methods and systems for analyzing and improving performance of computer codes
Publication Date: 2017.09.05 MATHWORKS INC
  • US9753731B1 patent drawing
  • US9753731B1 patent drawing
  • US9753731B1 patent drawing

AI summary

Methods and systems for analyzing and improving performance of computer codes. In some embodiments, a method comprises executing, via one or more processors, program code; collecting, via the one or more processors, one or more hardware dependent metrics for the program code; identifying an execution anomaly based on the one or more hardware dependent metrics, wherein the execution anomaly is present when executing the program code; and designing a modification of the program code via the one or more processors, wherein the modification addresses the execution anomaly. In some other embodiments, a method comprises collecting one or more hardware independent metrics for program code; receiving one or more characteristics of a computing device; and estimating, based on the one or more hardware independent metrics and the one or more characteristics, a duration for execution of the program code on the computing device.