SYSTEM AND METHOD FOR ENERGY USAGE ACCOUNTING IN SOFTWARE APPLICATIONS
First Claim
1. A method for generating an energy usage profile comprising:
- executing program instructions corresponding to a first system call in a software program with a processor in the computing device, the processor operating a component in the computing device in response to execution of the first system call;
generating a first call trace of the execution of the first system call with the processor, the generation of the first call trace further comprising;
generating a first timestamp corresponding to a first time at which the first system call is executed; and
generating a first identifier comprising at least one of the group consisting of a calling routine identifier, a thread identifier, and a process identifier for the software program that executes the first system call;
identifying a first power consumption level and a first duration of a first power state of the computing device in response to execution of the first system call based on a model stored in a first memory;
identifying a second power consumption level and a second duration of a second power state after the first power state based on the model;
generating an energy usage profile for the software program associating the first identifier with an estimate of energy consumption of the computing device in response to the execution of the first system call based at least in part on the first power consumption level, the first duration, the second power consumption level, and the second duration; and
storing the energy usage profile in a second memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for generating an energy usage profile for a software program executed in a computing device includes generating a call trace of an executed system call, identifying a first power consumption and duration of a first power state due to the first system call using a model, identifying a second power consumption and duration of a second power state based on the model, and generating an energy usage profile for the software program. The energy usage profile includes energy consumption of the computing device for the system call based on the first power consumption level multiplied by the first duration and the second power consumption level multiplied by the second duration associated an identifier for the call trace.
83 Citations
21 Claims
-
1. A method for generating an energy usage profile comprising:
-
executing program instructions corresponding to a first system call in a software program with a processor in the computing device, the processor operating a component in the computing device in response to execution of the first system call; generating a first call trace of the execution of the first system call with the processor, the generation of the first call trace further comprising; generating a first timestamp corresponding to a first time at which the first system call is executed; and generating a first identifier comprising at least one of the group consisting of a calling routine identifier, a thread identifier, and a process identifier for the software program that executes the first system call; identifying a first power consumption level and a first duration of a first power state of the computing device in response to execution of the first system call based on a model stored in a first memory; identifying a second power consumption level and a second duration of a second power state after the first power state based on the model; generating an energy usage profile for the software program associating the first identifier with an estimate of energy consumption of the computing device in response to the execution of the first system call based at least in part on the first power consumption level, the first duration, the second power consumption level, and the second duration; and storing the energy usage profile in a second memory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for generating an energy usage profile in a computing device comprising:
-
executing program instructions corresponding to a wake lock acquire system call in the software program with a processor in the computing device, a component in the computing device transitioning from a first power state to a second power state in response to the execution of the wake lock acquire system call, the second power state having a higher power consumption level for the component than the first power state; generating a first call trace of the execution of the wake lock acquire system call with the processor, the generation of the first call trace further comprising; generating a first timestamp corresponding to a first time at which the wake lock acquire system call is executed; and generating a first identifier comprising at least one of the group consisting of a calling routine identifier, a thread identifier, and a process identifier for the software program that executes the first system call; executing program instructions corresponding to a wake lock release system call in the software program with the processor in the computing device, the component in the computing device transitioning from the second power state to the first power state in response to the execution of the wake lock release system call; generating a second call trace of the execution of the wake lock release system call with the processor, the generation of the second call trace further comprising; generating a second timestamp corresponding to a second time at which the wake lock release system call is executed; and generating a second identifier comprising at least one of the group consisting of a calling routine identifier, a thread identifier, and a process identifier for the software program that executes the second system call; generating an energy usage profile for the software program associating the first identifier and an estimate of energy consumption of the computing device in response to the execution of the wake lock acquire system call based at least in part on the power consumption level of the second power state and an elapsed time from the first timestamp to the second timestamp; and storing the energy usage profile in a memory. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system for generation of an energy usage profile in a computing device comprising:
-
a memory configured to store; programmed instructions corresponding to an operating system; programmed instructions corresponding to a user program; and data corresponding to a model of power states corresponding to a component in the computing device; a processor operatively connected to the memory; a component connected to the processor to enable the processor to communicate with the component; and the processor being configured to; execute the programmed instructions corresponding to a first system call in the user program, the processor operating a component in the computing device in response to execution of the first system call; generate a first call trace of the execution of the first system call with the operating system, the processor being further configured to; generate a first timestamp corresponding to a first time at which the first system call is executed; and generate a first identifier comprising at least one of the group consisting of a calling routine identifier, a thread identifier, and a process identifier for the software program that executes the first system call; identify a first power consumption level and a first duration of a first power state of the computing device in response to execution of the first system call based on the model; identify a second power consumption level and a second duration of a second power state after the first power state based on the model; generate an energy usage profile for the software program associating the first identifier with an estimate of energy consumption of the computing device in response to the execution of the first system call based at least in part on the first power consumption level, the first duration, the second power consumption level, and the second duration; and store the energy usage profile in the memory. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification