Application Resource Analysis Using Call-Path Signatures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems struggle to effectively analyze and diagnose resource usage by applications on electronic devices, particularly in identifying regressions and inefficiencies across different versions, due to variations in call-stack signatures caused by compiler name mangling and minor refactoring.
Innovation Solution
A system that analyzes diagnostic data from electronic devices to categorize resource usage based on call-paths, application names, and version identifiers, using semantic and fuzzy matching to mitigate the effects of compiler name mangling and refactoring, thereby generating insights for users to diagnose and correct regressions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional resource usage analysis is performed without semantic matching, then analysis simplicity is maintained, but measurement precision deteriorates due to compiler name mangling and refactoring variations
Solution Approach 1:
The patent introduces call-path signatures as an intermediary representation that abstracts away compiler-specific name mangling and refactoring variations. Instead of directly comparing raw function names which vary across compilations, the system translates call-stacks into standardized signatures that preserve the semantic meaning of resource usage patterns while eliminating noise from implementation details.
Solution Approach 2:
The system transforms the analysis approach by changing the parameters used for comparison. Rather than comparing original function names (which are sensitive to compiler variations), the patent applies semantic matching that compares the structural and semantic parameters of call-paths, such as function relationships, parameter types, and control flow patterns, making the analysis robust to name changes.
2Difficulty of detecting and measuring
If detailed call-stack analysis is performed to identify specific resource usage portions, then diagnostic capability is improved, but difficulty of detecting and measuring increases due to compiler variations
Solution Approach 1:
The patent creates simplified copies of call-stack information in the form of call-path signatures. These signatures are abstracted representations that capture the essential structure and semantics of resource usage patterns without containing the full complexity of original function names and compiler-specific details, making them easier to compare and analyze reliably.
Solution Approach 2:
Call-path signatures serve as an intermediary layer between raw call-stack data and analysis results. This intermediary representation standardizes the data format and semantics, enabling reliable detection and measurement of resource usage patterns across different compiler versions and refactoring scenarios.
3Loss of information
If resource usage is categorized by application version identifiers, then regression detection capability is improved, but loss of information increases due to aggregation across versions
Solution Approach 1:
The patent segments resource usage data by both application version identifiers and call-path signatures. This segmentation allows the system to maintain detailed version-specific information for each signature while also enabling efficient comparison across versions. The segmented structure prevents information loss by organizing data in a way that preserves granularity while facilitating aggregate analysis.
Solution Approach 2:
The system adds an additional dimension to the data organization by introducing call-path signatures as a new categorization axis alongside version identifiers. This dimensional expansion allows simultaneous preservation of version-specific details and enabling of cross-version comparisons, as each signature-version combination can be independently analyzed while contributing to overall regression detection.
Data Source
AI summary
In an example method, a system receives diagnostic data from a plurality of electronic devices, the diagnostic data representing resource usage by applications on the plurality of electronic devices, application names associated with the applications, application version identifiers associated with the applications, and call-stacks associated with the resource usage by the applications. The system categorizes the resource usage based on the application names, the application version identifiers, and the call-stacks, including determining signatures based on the call-stacks, and categorizing the resource usage based on the signatures, the application names, and the application version identifiers. Further, the system generates a data set representing the categorization of the resource usage.


