×

System and method for energy usage accounting in software applications

  • US 10,013,511 B2
  • Filed: 04/09/2013
  • Issued: 07/03/2018
  • Est. Priority Date: 04/09/2012
  • Status: Active Grant
First Claim
Patent Images

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 a computing device, the processor operating a component that consumes power 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;

    executing program instructions corresponding to a second system call in the software program with the processor in the computing device, the processor operating the component that consumes power in the computing device in response to execution of the second system call;

    generating a second call trace of the execution of the second 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 second 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;

    identifying a first power consumption level of the component and a first duration of the first power consumption level during the first system call based on the first call trace and a first power state in a model stored in a first memory;

    identifying a second power consumption level of the component and a second duration of the second power consumption level that occurs after completion of the first system call and prior to executing the program instructions corresponding to the second system call based on a second power state in the model, the first time stamp, the first duration, and the second timestamp;

    identifying a third power consumption level of the component and a third duration of the third power consumption level during the second system call based on the second call trace and the first power state in the model;

    identifying a fourth power consumption level of the component and a fourth duration of the fourth power consumption level that occurs after completion of the second system call based on the second power state in the model;

    generating an energy usage profile for the software program associating the first identifier with an estimate of energy consumption of the component in response to the execution of the first system call based on the first power consumption level and the first duration and the second power consumption level and the second duration;

    generating the energy usage profile for the software program associating the second identifier with another estimate of energy consumption of the component in response to the execution of the second system call based on the on the third power consumption level and the third duration and the fourth power consumption level and the fourth duration; and

    storing the energy usage profile in a second memory.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×