Energy Consumption Report Analysis for Software Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software testing methods struggle to effectively monitor and analyze energy consumption of remote devices, especially those with limited resources, as they cannot capture comprehensive data on all possible environmental conditions and code paths, leading to inefficiencies and potential resource overconsumption.

Innovation Solution

Implement a system where remote devices generate energy consumption reports by capturing snapshots of call stacks during high energy usage, which are then processed on a server to identify representative call stacks and energy signatures, allowing for categorization and analysis to optimize application performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software applications are tested in controlled clean room environments before distribution, then testing can be performed under known conditions, but it is impossible to test every possible variation of environments and conditions that users may experience

Engineering Contradiction:
Improvesoftware testing reliabilityVSAvoidenvironmental condition coverage
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system enables remote devices to autonomously collect and report their own energy consumption data and call stack information without requiring physical connection to diagnostic equipment. This self-service approach allows the software to be tested in the actual environmental conditions where users operate it, rather than in controlled clean room environments, thereby achieving both reliability and environmental versatility.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A server acts as an intermediary between remote devices and developers. The server collects energy consumption reports from multiple remote devices operating in various environments, processes the data, and provides insights to developers. This intermediary system enables comprehensive environmental coverage by aggregating data from diverse real-world conditions while maintaining reliable testing through centralized analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If comprehensive testing of every code path is performed before release, then software correctness can be ensured, but it becomes very difficult and cost prohibitive as applications grow in complexity and size

Engineering Contradiction:
Improvesoftware correctnessVSAvoidapplication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements continuous feedback by collecting energy consumption data and call stack information from remote devices after deployment. This feedback loop allows developers to identify frequently executed code paths and potential issues in production environments, enabling targeted testing and optimization without requiring exhaustive pre-release testing of all code paths regardless of application complexity.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Instead of attempting to test every single code path before release (excessive action), the system focuses on collecting and analyzing energy consumption data from actual usage to identify the most critical code paths that require attention. This partial action approach prioritizes testing efforts on the most impactful areas while reducing overall testing costs and complexity.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If energy consumption monitoring is performed on remote devices without physical connection, then data can be collected from all devices in real environments, but gathering testing and diagnostic data from remote devices is generally not possible

Engineering Contradiction:
Improveremote device accessibilityVSAvoidtesting data availability
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system replaces the mechanical connection requirement (physical USB or wired connection to diagnostic equipment) with a software-based monitoring approach. Energy consumption sensors and debugging tools integrated into the remote device itself collect and transmit data wirelessly to the server, eliminating the need for physical connections while maintaining full data availability for testing and analysis.

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

Data Source

PatentUS11748224B2Detection and analysis of energy consumption of software applications
Publication Date: 2023.09.05 APPLE INC
  • US11748224B2 patent drawing
  • US11748224B2 patent drawing
  • US11748224B2 patent drawing

AI summary

Embodiments of the present disclosure include methods and systems for generating and processing energy consumption reports received from a plurality of devices. The reports may include a plurality of call stacks captured and stored by remote device as a result of an energy consumption of the corresponding device. For each energy consumption report, the plurality of call stacks may be analyzed to determine a representative call stack of the energy consumption report. The energy consumption reports may be assigned to one or more of a plurality of energy consumption categories based on distances between the representative call stacks of the energy consumption reports and corresponding representative call stacks of the energy consumption categories. A request may be received for energy consumption reports for a particular energy consumption category. Upon receiving the request, providing a representative set of energy consumption reports assigned to the particular energy consumption category.