1. A method comprising: repeatedly measuring power consumed by a computing system including a plurality of power-consuming hardware components and hosting a plurality of software modules, each of the software modules using one or more of the hardware components during a corresponding plurality of times whereby the software modules cause the hardware components to consume power, each of the software modules generating events corresponding to the use of the hardware components by the software module; and determining an energy consumption associated with a software module using the hardware components during the times by analyzing the computing system power measurements and the events associated with the use of the hardware components during the times.