Environmental Impact Power Consumption Rating for Applications

JP2024529226A5Active Publication Date: 2025-05-19MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023575368
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-07-21
Filing Date
2022-06-01
Publication Date
2025-05-19
Estimated Expiration
2042-06-01

AI Technical Summary

Technical Problem

Users and developers are unaware of the impact of application usage and design changes on power consumption, leading to an inability to make informed choices about environmental impact, as current methods lack the ability to determine specific correlations between usage or design changes and power consumption.

Method used

A computerized method for generating power consumption ratings by receiving instrumentation data, processing it to calculate power consumption values, and comparing these values to generate ratings for each application, which can be normalized and displayed to users or developers.

Benefits of technology

Enables users and developers to identify the environmental impact of application usage, promoting more efficient processing and power usage by encouraging the selection of low-impact applications, thereby improving user experience and sustainable software engineering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A system and method for generating a power consumption rating includes receiving instrumentation data corresponding to a plurality of applications. A relative power consumption value for each of the plurality of applications is calculated by processing the received instrumentation data. The relative power consumption values ​​for each application are compared, and a power consumption rating for each application is generated based on the comparison, thereby providing a visual indication of the power consumption of the applications that can be easily evaluated.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] background The total power usage by computing devices continues to increase with an increase in the number of devices, types of devices, and available applications. In many cases, application users and application designers are not aware of the power usage by computing devices, especially with respect to applications running on the computing devices. And even if a user or developer wishes to reduce the power usage resulting from applications running on the device to reduce the impact on the environment, there is no way to determine the impact of a particular change (e.g., changing the usage of an application or changing the design of an application). That is, users and developers cannot determine a specific correlation between the usage or design change and power consumption. Thus, users and developers are not aware of the impact of changing the usage and / or design of an application on power consumption. Thus, when two or more applications offer similar capabilities, there is currently no way for a user to make an informed choice of an application based on the environmental impact.

[0002] Thus, a user or designer may be able to turn off or disable certain applications or application features, but has no way of knowing the environmental impact of those changes, e.g., determining the impact on power usage of changing an application's usage behavior, changing an application's design, changing an application's features, etc. Summary of the Invention

[0003] overview This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0004] A computerized method for generating a power consumption rating includes receiving instrumentation data corresponding to a plurality of applications and calculating a relative power consumption value for each application of the plurality of applications by processing the received instrumentation data. The computerized method further includes comparing the relative power consumption values ​​of each application and generating a power consumption rating for each application based on the comparison.

[0005] Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.

[0006] BRIEF DESCRIPTION OF THE DRAWINGS The specification will be better understood from the following detailed description read in light of the accompanying drawings. [Brief description of the drawings]

[0007] [Figure 1] FIG. 1 is a block diagram illustrating a process flow according to an example. [Diagram 2] FIG. 1 is a block diagram illustrating a system according to an example. [Diagram 3] 1 is a block diagram illustrating a power consumption rating generation system according to an example. [Figure 4] 1 is a graph illustrating power consumption of an application according to an example. [Diagram 5] 1 illustrates a display of a power consumption rating according to an example. [Figure 6]1 is a flowchart illustrating the operation of a computing device for performing power consumption analysis of an application in accordance with an example. [Figure 7] An example computing device is illustrated as a functional block diagram.

[0008] Corresponding reference characters indicate corresponding parts throughout the drawings, in which the system is illustrated in schematic form and in which the drawings may not be to scale. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] Detailed Description Various example computing devices and methods described herein are configured to determine an environmental impact of an application's usage based on the power consumption by the application. In some examples, an Environmental Impact Rating (EIR) is generated and displayed for an application running on an operating system (e.g., a Windows operating system). For example, an application's EIR is generated by combining usage telemetry data of a central processing unit (CPU), display, and / or other system resources utilized by the application while it is running. In some examples, the EIR takes into account other factors, including associated cloud services or service delivery resource costs, such as streaming power usage over a network, and other related factors. In one or more examples, the EIR is normalized within application categories (e.g., music streaming, note taking, calculator) to provide a relative metric that can be clearly understood by a consumer or designer (e.g., the EIR can be updated periodically to encourage developers to improve resource consumption over time).

[0010] As a result of performing the operations described herein, the overall user experience can be improved by enabling users and developers to identify the environmental impact of application usage. Thus, when a processor is programmed to perform the operations described herein, the processor is used in a non-traditional manner that allows for more efficient processing and power usage by applications, resulting in reduced power consumption. In some examples, the operations described herein can facilitate consumer preferences toward low power, low impact applications, and can facilitate developers being aware of and optimizing resource usage. That is, one or more examples enable a focus on sustainability centered on the power consumption of operating platforms by developers who are not aware of power consumption, e.g., of applications designed to improve sustainable software engineering, and by consumers who are not aware of and cannot obtain information about application choices regarding environmental impact. Thus, awareness of the overall impact of technology on the environment can be increased, and sustainable software engineering can be better integrated with innovation, resulting in improved user experience and / or application performance.

[0011] The processes and operations described herein are not limited to a particular type of application or power usage, but may be implemented with different types of applications and to determine different impacts. The application power consumption or usage determination and / or monitoring may be implemented in a processing system 200 (e.g., an application power consumption determination system) deployed as a cloud service as illustrated in FIG. 2, which performs a process flow 100 as illustrated in FIG.

[0012] In various examples, the term "power" refers to the rate at which energy is consumed. In some examples, power may be expressed in terms of energy per given unit time. In some examples, power may be determined by an instantaneous measurement or by calculating the energy consumed over a period of time and dividing the value by the period of time, which may be determined from a set of instrumentation data captured by an operating system or platform (e.g., a Windows operating system). It should be appreciated that the instrumentation data captured is not limited to the operating system or platform. For example, cloud and service related consumption data may be collected directly from the provider (e.g., using a service application programming interface (API)) since the operating system cannot determine and report this consumption.

[0013] Different devices may calculate energy and power in different ways, but devices that measure power consumption often use the unit watts, and may do so by multiplying instantaneous current measurements of direct current (amperes) and voltage (volts). The term "energy" may be power integrated over time. For example, energy in kilowatt-hours is the average power in watts measured over a period of time multiplied by the length of time (measured in hours in this case). It should be recognized that other methods may be used to determine energy or power consumption, including the example of alternating current, which may use the power factor equation, among others.

[0014] In some examples, power may be measured directly and energy may be estimated or calculated from multiple instantaneous measurements. In other examples, energy may be measured directly and power may be calculated. In some examples, one component may measure or determine power directly and another component may measure or determine energy directly. In still other examples, energy or power may be measured or determined indirectly, such as by measuring temperature or other parameters from which energy or power may be calculated.

[0015] The total energy consumed by an application running on a device may be determined at least in part by summing the energy consumed by various components used by the application during execution. In some examples, the total energy may be determined by adding up the energy consumed by each individual component. In other examples, a function or other mechanism may be used to calculate the total energy used by the application, and such a mechanism may include inputs from each measured energy consumed by the individual components.

[0016] One or more examples provide an instrumentation device capable of monitoring energy consumption by various applications, where the energy consumption may be evaluated to determine a rating for the application and / or an optimized design configuration may be determined during application design by a software developer.

[0017] Mechanisms for monitoring power or energy consumption at the application level can be used to reduce power consumption or optimize the power consumption of one or more applications and to select an efficient set of applications to operate on a device (e.g., user selection of applications to install and / or run on the device). The optimized or desired power consumption level may be determined by running different sets of applications and then determining an optimal configuration based on the energy consumption during operation of the applications. In some examples, a user may view the relative power consumption ratings of applications (e.g., power consumption ratings displayed on an application storefront) prior to installation and / or operation. Thus, the user may select an application, set of applications, and / or application configuration having a desired or required power consumption level or rating.

[0018] A process flow 100 for computing power consumption information to generate dynamic labels for power consumption is illustrated in FIG. 1. The power consumption information may be formatted and presented to a user in a variety of ways, as described in more detail herein. It should be noted that while the process flow 100 is illustrated in relation to a single device 102, one or more examples use information from multiple devices (and / or users), which may be accumulated and processed over time. As can be seen, the device 102 includes a monitor 104 that monitors power consumption or usage. In one example, the monitor 104 captures a power consumption data set, illustrated as instrumentation data 106. In some examples, the instrumentation data 106 is captured by an operating system of the device 102 and mined by the process flow 100 to obtain or acquire data useful for determining the power consumption of one or more applications 112 running on the device 102. For example, usage telemetry data is mined from the instrumentation data 106 and processed using power consumption analytics 108. In some examples, scripts, SQL queries, or queries made using the D3 query tool may be used to mine usage telemetry data from database 116. Note that while a single database 116 is shown, in some examples data is stored in multiple databases 116.

[0019] In one example, while the device 102 is running (e.g., executing one or more applications 112), the monitor 104 is configured to monitor the power or energy consumption of various components and subcomponents that operate in conjunction with or are used by the one or more applications 112. In some examples, the monitor application 114 (which may be part of an operating system or platform) communicates with the monitor 104 to configure the monitor 104 and to receive data that can be used to calculate the power or energy consumption corresponding to the use of the one or more applications 112. For example, the monitor 104 is configured to acquire and store instrumentation data 106 used for power consumption analysis 108. That is, the monitor application 114 configures the monitor 104 to define what information to collect and when to collect that information. In one example, the monitor 104 is configured to collect data for calculating power or energy consumption information based on a subset of available components. The monitor 104 is configured to collect information, in some examples, over a particular period of time or when a particular workload performs a particular function. In some examples, the monitor 104 stores information already obtained by the operating system.

[0020] The monitor application 114 receives data from the monitor 104 in a variety of ways. In some examples, the monitor 104 is configured to collect data of a particular application or operation being performed by the application and send the data to the monitor application 114 once the operation is completed. In other examples, the monitor 104 is configured to collect data and send the data to the monitor application 114 at a predefined frequency or after a particular event occurs. For example, the monitor 104 may be configured to send the collected data every five minutes, daily, etc., or may be configured to send the collected data after some portion of one or more operations is completed.

[0021] Note that in some examples, the monitor 104 initiates the transmission of data. In other examples, the monitor application 114 sends a request to the monitor 104, and the monitor 104 responds to the request by sending data. In such examples, the request may be sent to the monitor 104 (as well as to monitors of other devices).

[0022] In some examples, the monitor application 114 updates the database 116 with collected information, such as the instrumentation data 106. In various examples, the data stored in the database 116 includes historical data regarding the energy or power usage and / or consumption of the applications 112. In some examples, the database 116 is updated with summary statistics related to the total energy or power usage and / or consumption of the device 102 during operation of the one or more applications 112. In some examples, the information is related to or associated with the energy or power usage and / or consumption of a particular component of the device 102 used to perform the operation of the one or more applications 112 (e.g., one or more monitored components operating when the one or more applications 112 are being used).

[0023] Using the instrumentation data 106, a power consumption analysis 108 is performed to determine the power consumption or usage attributable to each of the one or more applications 112. In some examples, the power consumption analysis 108 also includes a comparison of a subset of the one or more applications 112, which may include normalizing the power consumption or usage (e.g., normalizing for each individual user over a range of power usage for each application 112), such as over a period of time or across multiple users, and / or across groups or types of applications. In one example, each application 112 is categorized and power consumption or usage normalization is performed across each category of application 112. That is, power consumption or usage normalization is performed for each category of application 112 individually. It should be noted that classification of applications 112 may be performed using any category type definition (e.g., based on application store classification, such as classification within an application experience, or acquisition point of a particular application (app) store (e.g., Windows App Store), or other application acquisition experience). As a result, a power consumption analysis 108 can be performed to determine and compare power consumption or usage of similar applications 112 .

[0024] In one or more examples, processing of the power consumption or usage data, as performed by the power consumption analysis 108, results in a dynamic label 110 for each application 112. In one example, the dynamic label 110 is an EIR for each application 112 based at least in part on the calculated power consumption or usage of the application 112 (e.g., average power consumption or total power consumption over a defined period of time). Note that in some examples, the dynamic label 110 is updated over time. For example, when an application 112 is provided with an update (e.g., an application developer update), the power consumption analysis 108 is performed again to generate an updated dynamic label 110. In some examples, the updated dynamic label 110 is generated after several months, after a threshold amount of new applications 112 are added to the category of applications 112, or after some other defined period of time. Thus, the environmental impact indicator for each application 112 can be updated periodically to reflect the relative current power consumption or usage within the category of applications 112. For example, dynamic labels 110 represent power consumption or usage feedback associated with applications 112 (e.g., power consumption feedback for Windows applications). In some examples, labels 110 may be displayed or provided to users, such as on the product description page (PDP) of each application 112 (e.g., showing power ratings within the Windows Store experience and on web pages used to acquire applications). Dynamic labels 110 (e.g., power consumption ratings) are updated periodically in some examples to give individual application developers time to modify their applications and boost (e.g., improve) their ratings (e.g., letter or value ratings).

[0025] It should be appreciated that different types of data can be collected and stored, for example, in database 116. For example, monitor 104 is configured in various examples to capture certain types of data, such as D3 telemetry data (e.g., electricity, CPU consumption, minutes used for a process), network usage data (power consumption is derived from this data), display usage (e.g., foreground / background applications, pixels lit by foreground applications), disk activity, user usage of application 112 (e.g., daily active usage of application 112 by user, data minute activity usage per user). As should be appreciated, other types of data can be acquired with appropriately configured monitor 104. For example, other types of data include, but are not limited to, backlight (high / low) usage, screen on / off data, volume level / speaker usage, battery power reduction (e.g., power saving mode), etc. In general, the systems and methods described herein can be configured to capture and process any type of data using power consumption analytics 108 as described in more detail herein. In one example, a Windows application is used to collect telemetry (diagnostic) data usable by power consumption analytics 108. That is, in some examples, database 116 stores a log of telemetry data collected by the system. The log can then be parsed or filtered to obtain data related to power consumption or usage data for power consumption analytics 108 (e.g., extracting metrics or data related to power consumption or usage data, as described in more detail herein). In some examples, database 116 forms part of or is embedded within an identity system within an operating system (e.g., Windows) platform.

[0026] Thus, using process flow 100, instrumentation data 106 (e.g., software instrumentation data) collected from user program sessions is analyzed, including in some examples calculating program (application) power usage or consumption metrics. Information representative of application power usage metrics is output, such as in a format that allows for comparisons between applications. Note that in some examples, instrumentation data 106 may be further analyzed to determine at least one of power usage trends over time, determine user groups associated with power usage, and the like.

[0027] It should also be noted that in various examples, different criteria and data may be used to perform the power consumption analysis 108; i.e., different parameters, criteria, data, etc. may be used to analyze the instrumentation data 106. The power consumption analysis 108 may also be performed to determine different types of data related to power consumption by the application 112. For example, the power consumption analysis 108 may be performed to determine a power consumption profile of the application 112 that correlates power consumption to computing system activity of the device 102 when the application 112 is executing (e.g., performing an operation or in an idle state).

[0028] With particular reference to FIG. 2 (and with continued reference to FIG. 1 ), a processing system 200 can determine power consumption by individual applications 112 and generate a rating (e.g., dynamic label 110) for one or more of the applications 112 based on the determined power consumption (e.g., comparative ratings of applications across application types). The processing system 200 includes one or more computers 202 and a storage 204 for storing, for example, collected power consumption or usage data, as described in more detail herein. With various examples described herein, it should be appreciated that other data can be stored in the storage 204 and processed by the one or more computers 202. For example, different types of usage data (e.g., session data) of the device 102 can also be used to generate the rating.

[0029] The processing system 200, in some examples, is connected to one or more end-user computing devices 102, such as a desktop computer 206, a smartphone 208, a laptop computer 210, and an augmented reality head-mounted computer 212 (e.g., a Microsoft HoloLens®), each of which is capable of running one or more of the applications 112. In the illustrated example, the data processing system 200 is shown as connected to the end-user computing devices via a computer network 214, which is depicted as the Internet.

[0030] The processing system 200 receives input data, such as instrumentation data 106, from an end user computing device or server or from a telemetry application 120. The data is uploaded to the processing system 200 for processing, such as for processing using the process flow 100 to determine relative power consumption or usage among the applications 112. Note that in some examples, the processing system 200 performs data analytics on the received instrumentation data 106, which may be normalized per user and used to generate one or more graphs (e.g., scripts may be implemented to generate one or more power consumption graphs representing power consumption profiles). In this manner, a framework for comparing power consumption or usage of applications 112 is thereby provided.

[0031] It should be appreciated that the processing system 200 or some or all of the functionality of the processing system 200 may be implemented in one or more of the end user computing devices. The processing system 200 in this example also implements a rating generator 216 that performs rating generation based on power consumption analysis. For example, the rating generator 216 generates a power consumption rating for one or more of the applications 112, which may be based on data normalized using different criteria. In some examples, the power consumption analysis 108 generates comparative or relative power consumption data across multiple applications 112, which is then normalized and used by the rating generator 216 to generate a rating for each application 112. For example, the analyzed power consumption data may be normalized over a period of time and / or across multiple users to account for fluctuations in the power data ("ups" and "downs").

[0032] In some examples, the functionality of the processing system 200 described herein is performed, at least in part, by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system on a chip (SOC) systems, complex programmable logic devices (CPLDs), and graphic processing units (GPUs).

[0033] In this manner, the present disclosure is used to generate an environmental impact rating, such as by using a power consumption rating generation system 300 as illustrated in FIG. 3. The power consumption rating generation system 300 in one example uses the comparative power consumption analysis 308 to generate as an output a power consumption rating 310 for each of a plurality of applications (e.g., applications 112). More specifically, the power consumption rating generation system 300 includes a power consumption calculation processor 302 configured as a processing engine to perform the comparative power consumption analysis 308 of input 304, which in some examples is instrumentation data 106. That is, the power consumption rating generation system 300 receives the input 304 and identifies power consumption related data 306 to be processed by the comparative power consumption analysis 308. For example, instrumentation data related to or associated with power consumption by one or more applications is processed using the comparative power consumption analysis 308 to determine a scaled comparison of power consumption or usage between the applications (e.g., a comparison of normalized instrumentation data as described herein). Based on this scaled comparison, a power consumption rating 310 is generated, which may be a rating for each application within the defined application type, as described in more detail herein.

[0034] The power consumption calculation processor 302 in various examples analyzes power consumed by a computing device caused by the execution of one or more applications by the computing device. In some examples, a power consumption trace or graph is generated corresponding to the power consumption or usage of one or more applications over time. That is, an analysis of the amount of power consumed by one or more components of the computing device caused by applications executed by the processing unit of the computing device over time is performed and used to generate the power consumption rating 310. For example, graphs 400 and 402 in FIG. 4 illustrate power consumption by applications over time. Graph 400 illustrates average application usage over time, and graph 402 illustrates the corresponding average power usage over time. As can be seen, telemetry data, such as instrumentation data 106, can generate a power consumption profile for one or more applications (illustrated as a single application in FIG. 4).

[0035] With the data illustrated in FIG. 4, the power consumption or usage of an application can be calculated and normalized over time for comparison to the power consumption or usage of other applications. In one example, the power consumption data over time is summed (e.g., summing the power consumed by the CPU over the period of time that application 1 is running). The sum is then divided by the number of active minutes or active users to obtain a normalized value. As a result, a determination of application instance minutes can be made (e.g., application 1 for 1 minute consumes X# Joules). Using this data for each of the multiple applications, a consumable value such as a power consumption rating 310 is generated and updated periodically (e.g., every 3-6 months).

[0036] In one example, the EIR is generated for applications running on an operating system (e.g., Windows®) by combining CPU, display usage, and usage telemetry data for other components of the system that the application uses during its execution. The ratings are normalized, in some examples, within each application category (e.g., music streaming, note taking, calculator) to provide a letter (e.g., A-G) or other relative metric that consumers can clearly understand and that can facilitate targeting actions toward low power, low impact applications, etc., as well as developers to be aware of and optimize resource usage. For example, the EIR can be updated periodically to encourage developers to improve resource consumption.

[0037] In this manner, in various examples, a relative power consumption value is generated using telemetry data regarding both system and application usage. In some examples, the relative value provides a comparison between similar types of applications, which is published against user consumption. For example, a PDP 500 is shown in FIG. 5 illustrating a rating 504 corresponding to each of a number of applications 502. That is, a relative power consumption rating 504 generated for each of the applications 502 using one or more examples described herein is provided to the user. The rating range or scale is identified by a rating range 506. In this example, the rating range 506 is defined by a letter, with A being the lowest rating (consumes the highest amount of power relatively) and G being the highest or best rating (consumes the lowest amount of power relatively), or vice versa. Each rating level can be defined as desired and may include sub-levels (such as plus or minus for each letter). In some examples, each letter rating corresponds to a power consumption usage range as determined by the examples described herein. For example, each letter is defined by an upper and lower power consumption value that corresponds to the normalized value of each application 502. It should be appreciated that any indicator of relative power consumption usage may be employed in the rating scale, such as numbers, graphics, etc.

[0038] 3, in one example, the power consumption calculation processor 302 generates a power consumption rating 310 that is displayed or caused to be displayed on a rating page 318 or other user-viewable display. The rating page 318 in some examples is configured similarly to the PDP 500 and allows a user to view power consumption ratings of one or more applications, such as within a particular application type or class.

[0039] Also, various parameters, etc., for defining the analysis, etc., to be performed, for the power consumption calculation processor 302 may be specified by an operator. For example, the operator may specify date ranges, thresholds, etc., using the graphical user interface 316. Once the operator configures one or more parameters, the power consumption calculation processor 302 is configured to perform a power consumption analysis of the multiple applications, as described herein. Note that in some examples, the rating page 318 is saved and loaded to one or more devices or one or more application locations, such as an application store. The application store may include applications for use by one or more operating platforms or systems, such as the Windows operating system or the Android operating system. The applications may also be configured to run on different devices, such as mobile phones, computers, gaming systems, etc.

[0040] As will be appreciated, the various examples above can be used to calculate power consumption usage and ratings for different types of applications. Additionally, the various examples above can be used to perform power consumption analysis using different types of data.

[0041] 6 illustrates a flowchart of a method 600 for performing various example application power consumption analysis that can be used to generate a power consumption rating. The operations illustrated in the flowcharts described herein may be performed in an order different from that shown, may include additional or fewer steps, and may be modified as desired or necessary. In addition, one or more operations may be performed simultaneously, in parallel, or sequentially. The method 600, in some examples, is performed on a computing device, such as a server or computer, having processing capabilities to efficiently perform the operations.

[0042] Referring to method 600, a computing device receives 602 an instrumentation data set for an application. For example, telemetry data, network usage data, display usage data, disk activity data, application usage data, etc., for the application is acquired. This data is acquired over a defined period of time regarding the usage of the application. It should be noted that some of this data is acquired during normal operation of the application on the operating platform, such as for other use in diagnostic operations (e.g., data acquired for analysis other than power consumption). That is, this data is already available within the system. However, in other examples, one or more monitor devices or processes (e.g., monitor 104) are configured to acquire some or all of the instrumentation data.

[0043] The received instrumentation data is filtered at 604. For example, the instrumentation data is filtered to obtain or acquire a subset of instrumentation data used to determine the power consumption usage of the application. That is, the instrumentation data that is relevant or related to the calculations used to analyze the power consumption of the application is retained or output for processing, such as by the power consumption calculation processor 302 (of FIG. 3). In some examples, the filtering is a data mining process that identifies only the specific instrumentation data acquired by the system for use in the power consumption usage processing, as described herein. It should be noted that the subset of instrumentation data in various examples may be directly related to power consumption (e.g., power consumption values ​​of components used by the application) or indirectly related to power consumption (e.g., usage values ​​of components from which a corresponding power consumption value can be calculated). For example, telemetry data and display usage data have a direct correlation or value to power consumption. Network usage data has an indirect correlation to power usage and is used to derive associated power consumption based on, for example, components operating during network usage times such as those caused by the execution of the application.

[0044] The filtered instrumentation data is used to calculate the power consumption or usage of the application at 606. For example, total, average, and / or other usage over a defined time period is calculated for processes and / or components operating in response to the execution of the application. That is, corresponding instrumentation data for processes and / or components identified as operating in executing the application are summed in some examples. In this manner, a total power consumption usage of the corresponding device resources is determined for the application. The calculation can be performed over various time frames or windows as desired. The power consumption of the application is normalized at 608. For example, the calculated power consumption by the application (e.g., indirect and direct power consumption data resulting from the execution of the application) is normalized. In various examples, any suitable mathematical normalization process can be used. In one or more examples, the normalization can be performed over one or more of a period of time, multiple users, a particular application type, a particular component usage, and the like. That is, in some examples, different normalizations of the filtered instrumentation data can be performed depending on the comparisons made and the respective power consumption ratings generated.

[0045] The normalized power consumption results are categorized at 610. For example, a number of application types are defined and the normalized power consumption of the application is associated with the application's corresponding application type. The application types can be defined at any level of granularity, which in some examples is based at least in part on application types defined in an application store. It should be appreciated that the categorization, in some examples, defines a subset of the normalized power consumption that is used to generate a rating.

[0046] The categorized power consumption values ​​are compared at 612, i.e., power consumption or usage by applications within a single application type is compared. In some examples, the comparison is used to define power consumption levels or thresholds for different ratings. For example, a normal distribution (e.g., bell curve graph distribution) or other data value distribution scheme may be used to rank or differentiate different levels or ranges of power consumption by application type.

[0047] A rating based on the power consumption is then generated at 614. For example, cutoff or threshold levels based on the defined distribution may be used to select rating ranges or levels for the rating scheme. In some examples, the rating levels or ranges are set based on the absolute calculated power consumption per application, the number of applications included within each rating level or range, etc. That is, the rating schemes may differ based on the particular operating environment, desired changes in operational or design behavior with respect to power usage, etc. The ratings for each application may then be made available for display on the PDP (e.g., within the Windows Store experience), etc. It is noted that different rating or ranking schemes may be used and may be any relative value corresponding to the calculated power consumption or usage. It is also noted that in some examples, the ratings are periodically updated, as described in more detail herein.

[0048] For one example within a Windows® operating environment, data arrives at an existing telemetry component of the Windows® operating system, which is stored in several disparate databases. SQL queries are run against the data, and normalization is applied to multiple data points across threshold time periods and threshold numbers of different users to create a power consumption value for the application. In some examples, the power consumption value is an averaged number (see graphs 400 and 402 in FIG. 4). The power consumption value is used to generate a rating value.

[0049] Thus, in some examples, method 600 may be used to calculate power consumption or usage of applications and generate a rating for the applications based on the calculated power consumption or usage, such that a consumer or programmer can easily identify applications that use less power than other applications.

[0050] Example Operating Environment The present disclosure is operable with a computing device 702 according to an example as the functional block diagram 700 of FIG. 7. In an example, the components of the computing device 702 may be implemented as part of an electronic device according to one or more examples described herein. The computing device 702 includes one or more processors 704, which may be a microprocessor, controller, or any other suitable type of processor for processing computer-executable instructions for controlling the operation of the electronic device. Platform software including an operating system 706, or any other suitable platform software, may be provided on the device 702 to enable application software 708 to be executed on the device. According to an example, the calculated application power consumption 710 used to generate the rating 712 may be accomplished by software.

[0051] Computer-executable instructions may be provided using any computer-readable medium accessible by computing device 702. Computer-readable media may include, for example, computer storage media, such as memory 714, and communication media. Computer storage media, such as memory 714, include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, and the like. Computer storage media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission media usable to store information for access by a computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, and the like, in a modulated data signal such as a carrier wave or other transport mechanism. As defined herein, computer storage media does not include communication media. As such, computer storage media is not to be construed as a propagating signal per se. A propagating signal, per se, is not an example of a computer storage medium. Although computer storage medium (memory 714) is illustrated within computing device 702, those skilled in the art will recognize that the storage may be distributed or remotely located and accessed over a network or other communications link (e.g., using communications interface 716).

[0052] The computing device 702 may include an input / output controller 718 configured to output information to one or more input devices 720 and output devices 722 (e.g., a display or speaker), which may be separate or integral to the electronic device. The input / output controller 718 may also be configured to receive and process input from one or more input devices 720, such as a keyboard, microphone, or touchpad. In one embodiment, the output device 722 may also function as an input device 720. One example of such a device may be a touch-sensitive display. The input / output controller 718 may also output data to a device other than the output device 722, such as a locally connected printing device. In some embodiments, a user may provide input to one or more input devices 720 and / or receive output from one or more output devices 722.

[0053] In some examples, the computing device 702 detects voice input, user gestures, or other user actions to provide a natural user interface (NUI). This user input can be used for electronic ink authoring, content browsing, ink control selection, video playback with electronic ink overlay, and other purposes. The input / output controller 718, in some examples, outputs data to devices other than a display device, such as a locally attached printing device.

[0054] The functionality described herein may be performed, at least in part, by one or more hardware logic components. According to an embodiment, the computing device 802 is configured with program code that, when executed by the one or more processors 704, performs examples and implementations of the operations and functionality described. Alternatively or additionally, the functionality described herein may be performed, at least in part, by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that may be used include FPGAs, ASICs, ASSPs, SOCs, CPLDs, and GPUs.

[0055] At least a portion of the functionality of the various elements in the figures may be performed by other elements in the figures or by entities not shown in the figures (e.g., processors, web services, servers, application programs, computing devices, etc.).

[0056] Although examples of the disclosure are described in connection with an exemplary computing system environment, they are operable with numerous other general purpose or special purpose computing system environments, configurations or devices.

[0057] Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with aspects of the present disclosure include, but are not limited to, mobile or portable computing devices (e.g., smartphones), personal computers, server computers, handheld (e.g., tablets) or laptop devices, multiprocessor systems, game consoles or controllers, microprocessor-based systems, set-top boxes, programmable appliances, mobile phones, mobile computing and / or communication devices in wearable or accessory form factors (e.g., watches, glasses, headsets, or earphones), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. In general, the present disclosure can operate on any device having processing capabilities such that it can execute instructions as described herein. Such systems or devices can accept input from a user in any manner, such as from an input device such as a keyboard or pointing device, via gesture input, via proximity input (such as by hovering), and / or via voice input.

[0058] Examples of the disclosure may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices, in software, firmware, hardware, or a combination thereof. Computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the disclosure may be implemented with any number and organization of such components or modules. For example, aspects of the disclosure are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other examples of the disclosure may include different computer-executable instructions or components having more or less functionality than illustrated and described herein. In examples involving a general-purpose computer, aspects of the disclosure transform the general-purpose computer into a special-purpose computing device when configured to execute instructions described herein.

[0059] Other examples include: 1. A computerized method for generating an electricity consumption rating, comprising: receiving instrumentation data corresponding to a plurality of applications; calculating a relative power consumption value for each application of the plurality of applications by processing the received instrumentation data; Comparing the relative power consumption of each application; generating a power consumption rating for each application based on the comparison; and The computerized method includes:

[0060] Other examples include: 1. A system for generating an electrical power consumption rating, the system comprising: At least one processor; at least one memory having computer program code, the at least one memory and the computer program code being configured to execute, using at least one processor: receiving instrumentation data corresponding to a plurality of applications; calculating a relative power consumption value for each application of the plurality of applications by processing the received instrumentation data; Comparing the relative power consumption of each application; generating a power consumption rating for each application based on the comparison; and The system is configured to cause at least one processor to:

[0061] Other examples include: When executed by the processor, the program includes at least receiving instrumentation data corresponding to a plurality of applications; calculating a relative power consumption value for each application of the plurality of applications by processing the received instrumentation data; Comparing the relative power consumption of each application; generating a power consumption rating for each application based on the comparison; and One or more computer storage media having computer-executable instructions for causing a processor to generate a power consumption rating.

[0062] Alternatively, or in addition to the above examples, examples include any combination of the following: Classifying each application of the plurality of applications into one or more of a plurality of categories, and making said comparison only within each category. Normalizing relative power consumption values, where the normalizing is performed over a defined time period and / or across multiple users. Periodically generating a power consumption rating for at least one of the applications. Displaying the power consumption rating to a user, the user being one of a consumer or a software developer. Calculating the relative power consumption values ​​by processing the received instrumentation data includes at least one of summing and averaging the received instrumentation data. The instrumentation data includes at least one of telemetry data, network usage data, display usage data, disk activity data, and application usage data.

[0063] As will be apparent to one skilled in the art, any ranges or device values ​​given herein may be expanded or modified without losing the desired effect.

[0064] Although the present subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

[0065] It will be understood that the benefits and advantages described above may relate to one example or to several examples. The examples are not limited to those that solve any or all of the stated problems or have any or all of the stated benefits and advantages. Further, it will be understood that references to "an" or "an" item refer to one or more of those items.

[0066] The examples shown and described herein, as well as examples not specifically described herein but falling within the scope of the claimed aspects, constitute an exemplary means for training a neural network. The illustrated one or more processors 1004, together with computer program code stored in memory 1014, constitute an exemplary processing means for fusing multimodal data. In this specification, the term "comprising" is used to mean including one or more subsequent features or one or more acts without excluding the presence of one or more additional features or acts.

[0067] In some examples, the operations illustrated in the figures may be implemented as software instructions encoded on a computer-readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected conductive elements.

[0068] The order of performing or doing the operations in the examples of the disclosure shown and described herein is not required unless otherwise specified. That is, operations may be performed in any order unless otherwise specified, and examples of the disclosure may include more or fewer operations than those disclosed herein. For example, performing or doing a particular operation before, contemporaneously with, or after another operation is contemplated to be within the scope of aspects of the disclosure.

[0069] When introducing elements of aspects or examples of the disclosure, the articles "a," "an," "the," and "said" are intended to mean that there are one or more of the elements. The terms "comprising," "including," and "having" are intended to be inclusive and mean that there may be additional elements other than the listed elements. The term "exemplary" is intended to mean "one example of." The phrase "one or more of A, B, and C" means "at least one of A, and / or at least one of B, and / or at least one of C."

[0070] The phrase "one or more of A, B, and C" means "at least one of A, and / or at least one of B, and / or at least one of C." The phrase "and / or" as used in the specification and claims shall be understood to mean "either or both" of the elements so conjoined, i.e., elements that are conjunctive in some cases and disjunctive in other cases. Multiple elements listed with "and / or" shall be construed in the same manner, i.e., "one or more" of the elements so conjoined. Other elements other than those specifically identified by the "and / or" clause may optionally be present, whether or not related to the specifically identified elements. Thus, as a non-limiting example, a reference to "A and / or B," when used in conjunction with open-ended language such as "comprising," may in one implementation refer to only A (optionally including elements other than B), in another implementation refer to only B (optionally including elements other than A), in yet another implementation refer to both A and B (optionally including other elements), etc.

[0071] As used herein and in the claims, "or" shall be understood to have the same meaning as "and / or" as defined above. For example, when separating items in a list, "or" or "and / or" shall be interpreted to be inclusive, i.e., to include not only the inclusion of at least one, but also two or more of an element or list of elements, and optionally, to include additional unlisted items. Only terms clearly indicating the contrary, such as "only one of," or "exactly one of," or "consisting of," when used in the claims, shall refer to the inclusion of exactly one element of an element or list of elements. In general, the term "or" used shall be interpreted to indicate exclusive alternatives (i.e., "one or the other, but not both") only when preceded by an exclusive term, such as "either," "one of," "only one of," or "exactly one of." When used in the claims, "consisting essentially of" shall have its ordinary meaning as used in the field of patent law.

[0072] As used in this specification and claims, the phrase "at least one" in connection with a list of one or more elements shall be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed in the list of elements, and not excluding any combination of elements in the list of elements. This definition also allows that elements other than those specifically identified in the list of elements to which the phrase "at least one" refers may optionally be present, whether or not related to the specifically identified elements. Thus, as a non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B," or, equivalently, "at least one of A and / or B") may refer in one implementation to at least one (optionally including more than one) A with no B (and optionally including elements other than B), in another implementation to at least one (optionally including more than one) B with no A (and optionally including elements other than A), in yet another implementation to at least one (optionally including more than one) A and at least one (optionally including more than one) B (and optionally including other elements), etc.

[0073] Having described the aspects of the present disclosure in detail, it will be apparent that modifications and variations are possible without departing from the scope of the aspects of the present disclosure as defined in the appended claims. Because various changes may be made in the constructions, products, and methods described above without departing from the scope of the aspects of the present disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings be interpreted as illustrative and not in a limiting sense.

Claims

1. 1. A computerized method comprising: executing a plurality of applications on a first device; obtaining instrumentation data relating to power consumption of the plurality of applications using a processor configured to monitor power consumption by each application of the plurality of applications; filtering the acquired instrumentation data to obtain a subset of instrumentation data that is directly related to the power consumption or indirectly related to the power consumption; calculating a relative power consumption value for each application of the plurality of applications based on the acquired subset of the acquired instrumentation data; normalizing the relative power consumption values ​​of each application within an application category; dynamically generating a power consumption rating for each application based on the normalization while the first device is executing the applications; generating a dynamic label for each application corresponding to the dynamically generated power consumption rating; presenting the dynamic label for each application of the plurality of applications to a user; updating the dynamic label when one of the applications running on the first device is updated or when a threshold amount of new applications are executed on the first device; receiving from the user a selection of one of the plurality of applications, the selection representing an optimized application having a desired power consumption level based on the updated dynamic labels of the plurality of applications; executing the selected application of the plurality of applications on a second device; The computerized method includes:

2. 2. The computerized method of claim 1, further comprising: classifying each application of the plurality of applications into one or more of a plurality of categories; and performing the normalizing only within each category.

3. The computerized method of claim 1 , wherein normalizing the relative power consumption values ​​normalizes the relative power consumption values ​​over a defined period of time.

4. The computerized method of claim 1 , further comprising: generating an updated power consumption rating for at least one of the applications by periodically performing the generating of the power consumption rating.

5. The computerized method of claim 1, further comprising installing the selected application of the plurality of applications on the second device.

6. The computerized method of claim 1, wherein calculating the relative power consumption values ​​for each application includes at least one of summing and averaging the acquired instrumentation data.

7. the instrumentation data includes at least one of telemetry data, network usage data, display usage data, disk activity data, and application usage data; the acquired instrumentation data directly related to power consumption includes telemetry data and display usage data; The computerized method of claim 1 , wherein the acquired instrumentation data indirectly related to power consumption comprises network usage data.

8. A processor; a memory having computer program code, the memory and the computer program code configured to execute, using the processor: Running multiple applications on the device; obtaining instrumentation data relating to power consumption by each application of the plurality of applications; filtering the acquired instrumentation data to obtain a subset of instrumentation data that is directly related to the power consumption or indirectly related to the power consumption; calculating a relative power consumption value for each application of the plurality of applications based on the acquired subset of the acquired instrumentation data; normalizing the relative power consumption values ​​of each application within an application category; dynamically generating a power consumption rating for each application based on the normalization while the device is executing the applications; generating a dynamic label for each application corresponding to the dynamically generated power consumption rating; presenting the dynamic label for each application of the plurality of applications to a user; updating the dynamic label when one of the applications running on the device is updated or when a threshold amount of new applications are executed on the device; receiving from the user a selection of one of the plurality of applications, the selection representing an optimized application having a desired power consumption level based on the updated dynamic labels of the plurality of applications; executing the selected application of the plurality of applications on the device; The system is configured to cause the processor to:

9. 9. The system of claim 8, wherein the memory and the computer program code are configured to cause the processor to classify, using the processor, each application of the plurality of applications into one or more of a plurality of categories and to perform the normalizing only within each category.

10. The system of claim 8 , wherein to normalize the relative power consumption values, the processor further normalizes the relative power consumption values ​​over at least one of a defined time period and a plurality of users.

11. 9. The system of claim 8, wherein the memory and the computer program code are configured to cause the processor to generate an updated power consumption rating for at least one of the applications by periodically performing the generating of the power consumption rating using the processor.

12. 9. The system of claim 8, wherein the memory and the computer program code are configured to cause the processor to: display, using the processor, the power consumption rating to the user, the user being one of a consumer or a software developer.

13. The system of claim 8, wherein the processor further performs at least one of summing and averaging the acquired instrumentation data to calculate relative power consumption values ​​for each application.

14. The system of claim 8 , wherein the instrumentation data includes at least one of telemetry data, network usage data, display usage data, disk activity data, and application usage data.

15. When executed by the processor, the program includes at least Running multiple applications on the device; obtaining instrumentation data relating to power consumption by each application of the plurality of applications; filtering the acquired instrumentation data to obtain a subset of instrumentation data that is directly related to the power consumption or indirectly related to the power consumption; calculating a relative power consumption value for each application of the plurality of applications based on the acquired subset of the acquired instrumentation data; normalizing the relative power consumption values ​​of each application within an application category; dynamically generating a power consumption rating for each application based on the normalization while the device is executing the applications; generating a dynamic label for each application corresponding to the dynamically generated power consumption rating; presenting the dynamic label for each application of the plurality of applications to a user; updating the dynamic label when one of the applications running on the device is updated or when a threshold amount of new applications are executed on the device; receiving from the user a selection of one of the plurality of applications, the selection representing an optimized application having a desired power consumption level based on the updated dynamic labels of the plurality of applications; executing the selected application of the plurality of applications on the device; 23. A computer-readable storage medium having computer-executable instructions for causing the processor to: