Environmental impact power consumption rating for applications

By generating power consumption ratings through data processing and comparison, the method addresses the lack of awareness about application impact on power consumption, facilitating informed choices and promoting sustainable software engineering.

JP2026113524APending Publication Date: 2026-07-07MICROSOFT TECHNOLOGY LICENSING LLC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
MICROSOFT TECHNOLOGY LICENSING LLC
Filing Date
2026-03-25
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

Users and developers are unaware of the impact of application usage and design changes on power consumption, leading to uninformed choices and lack of awareness about environmental impact, as there is no way to determine the correlation between usage or design changes and power consumption.

Method used

A computerized method to generate power consumption ratings by receiving instrumentation data, processing it to calculate relative values, and comparing these values to assign ratings to applications, taking into account factors like CPU usage, display, and cloud service power usage.

Benefits of technology

Enables users and developers to identify the environmental impact of application usage, promoting more efficient processing and power usage, shifting preferences towards low-impact applications, and encouraging sustainable software engineering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026113524000001_ABST
    Figure 2026113524000001_ABST
Patent Text Reader

Abstract

This invention provides a method, system, and storage medium for determining the impact on power consumption caused by changes in application usage behavior, application design, and application characteristics. [Solution] A method for generating power consumption ratings includes receiving instrumentation data corresponding to multiple applications, processing the received instrumentation data to calculate relative power consumption values ​​for each of the multiple applications, comparing the relative power consumption values ​​for each application, and generating a power consumption rating for each application based on the comparison, thereby providing a visual indicator of the power consumption of an application that can be easily evaluated.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Background The total power consumption by computing devices continues to increase with the increase in the number of devices, the types of devices, and the available applications. In many cases, application users and application designers are not aware of the power consumption by computing devices, particularly the power consumption related to the applications running on the computing devices. And even if a user or developer wishes to reduce the power consumption derived from the applications running on a device in order to reduce the impact on the environment, there is no way to determine the impact of specific changes (e.g., changes in application usage or application design changes). That is, users and developers cannot determine the specific correlation between usage or design changes and power consumption. Therefore, users and developers are not aware of the impact of changes in application usage and / or design on power consumption. Therefore, when two or more applications provide similar capabilities, currently, there is no way for users to make a well-informed choice of applications based on environmental impact.

[0002] Therefore, a user or designer can turn off or disable a specific application or application feature, but there is no way to know the environmental impact of those changes. For example, there is no way to determine the impact on power consumption due to changes in application usage behavior, changes in application design, changes in application features, etc.

Summary of the Invention

[0003] Summary This summary is provided to introduce selected concepts in a simplified form, which are further described below in a more detailed explanation. This summary is not intended to identify the main 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 power consumption ratings includes receiving instrumentation data corresponding to multiple applications, and processing the received instrumentation data to calculate relative power consumption values ​​for each of the multiple applications. The computerized method further includes comparing the relative power consumption values ​​for each application and generating a power consumption rating for each application based on the comparison.

[0005] Many of the associated features will become more readily apparent as they are better understood by referring to the following detailed descriptions, which are considered in relation to the attached drawings.

[0006] Brief explanation of the drawing This specification will be better understood from the following detailed description, which should be read in reference to the accompanying drawings. [Brief explanation of the drawing]

[0007] [Figure 1] This is a block diagram illustrating a process flow in a particular example. [Figure 2] This is a block diagram illustrating a system in a particular example. [Figure 3] This is a block diagram illustrating a power consumption rating generation system based on a specific example. [Figure 4] This graph shows the power consumption of an application in a specific example. [Figure 5] This shows an example of how to display a power consumption rating. [Figure 6]This flowchart illustrates the operation of a computing device for analyzing the power consumption of an application in a given example. [Figure 7] A functional block diagram illustrating an example computing device is provided.

[0008] Corresponding reference numerals indicate corresponding parts throughout the drawing. In the drawing, the system is shown as a schematic diagram. The drawing may not be to scale. [Modes for carrying out the invention]

[0009] Detailed explanation The various example computing devices and methods described herein are configured to determine the environmental impact of application usage based on the power consumption of the application. In some examples, an Environmental Impact Rating (EIR) is generated and displayed for applications running on an operating system (e.g., the Windows® operating system). For example, the EIR of an application is generated by combining telemetry data on the usage of the central processing unit (CPU), display, and / or other system resources that the application utilizes while running. In some examples, the EIR takes into account other factors, including service distribution resource costs such as power usage of associated cloud services or streaming on a network, and other relevant factors. In one or more examples, the EIR is normalized within an application category (e.g., music streaming, note-taking, calculator) to provide a relative index that is easily understood by consumers or designers (e.g., the EIR may be updated periodically to encourage developers to improve resource usage over time).

[0010] As a result of performing the actions 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 actions described herein, it is used by applications in unconventional ways that enable more efficient processing and power usage, resulting in reduced power consumption. In some examples, the actions described herein can facilitate shifting consumer preferences toward low-power, low-impact applications, and can facilitate making developers more aware of and optimizing resource usage. Specifically, one or more examples enable a focus on sustainability centered on the power consumption of operating platforms by developers who are unaware of power consumption, for example, by those whose applications are designed to improve sustainable software engineering, and by consumers who are unaware of and unable to access information about application choices regarding environmental impact. This can lead to increased awareness of the overall impact of technology on the environment, greater integration of sustainable software engineering with innovation, and consequently, improved user experience and / or application performance.

[0011] The processes and operations described herein are not limited to specific types of applications or power consumption, but can also be performed using different types of applications and to determine different effects. Determining and / or monitoring application power consumption or usage can be performed in a processing system 200 (e.g., an application power consumption determination system) deployed as a cloud service, as illustrated in Figure 2, performing a process flow 100 as illustrated in Figure 1.

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

[0013] While different devices may calculate energy and power in different ways, devices that measure power consumption often use watts, which can be done by multiplying instantaneous current measurements (amperes) and voltage (volts) of a direct current. The term "energy" can refer to 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 (in this case, measured in hours). It should be recognized that other methods may be used to determine energy consumption or power consumption, including the example of alternating current where the power factor formula can be used.

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

[0015] The total energy consumed by an application running on a device can be determined, at least partially, by summing the energy consumed by the various components used by the application during execution. In some examples, the total energy may be determined by adding up the energy consumed by the individual components. In other examples, a function or other mechanism may be used to calculate the total energy used by the application, 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 across various applications. Energy consumption may be evaluated to determine the application's rating, and / or an optimized design configuration may be determined by the software developer during the application design.

[0017] Mechanisms for monitoring power or energy consumption at the application level can be used to reduce power consumption, optimize the power consumption of one or more applications, and select an efficient set of applications to run 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 the optimal configuration based on the energy consumption of the applications in operation. In some examples, the user can view the relative power consumption rating of an application (e.g., the power consumption rating displayed in the application storefront) before installation and / or operation. Thus, the user can select an application, set of applications, and / or application configuration that has the desired or required power consumption level or rating.

[0018] Figure 1 illustrates a process flow 100 for calculating power consumption information to generate dynamic labels relating to power consumption. The power consumption information can be formatted and presented to the user in various ways, as will be described in more detail herein. While the process flow 100 is illustrated in relation to a single device 102, it should be noted that one or more examples may use information from multiple devices (and / or users) that can be accumulated and processed over time. As can be seen from the figure, device 102 includes a monitor 104 that monitors power consumption or usage. In one example, the monitor 104 captures a power consumption dataset, illustrated as instrumentation data 106. In some examples, the instrumentation data 106 is captured by the operating system of 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 device 102. For example, usage telemetry data is mined from the instrumentation data 106 and processed using power consumption analysis 108. In some examples, queries performed using scripts, SQL queries, or 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, the data is stored in multiple databases 116.

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

[0020] The monitoring application 114 receives data from the monitor 104 in various ways. In some examples, the monitor 104 is configured to collect data on a specific application or an action performed by an application, and to send the data to the monitoring application 114 when the action is complete. In other examples, the monitor 104 is configured to collect data and send it to the monitoring application 114 at a predetermined frequency or after a specific event occurs. For example, the monitor 104 may be configured to send collected data every five minutes, daily, etc., or to send collected data after a part of one or more actions is completed.

[0021] Note that in some examples, the monitor 104 starts sending 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 can be sent to the monitor 104 (and monitors of other devices).

[0022] In some examples, the monitor application 114 updates the database 116 with the 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 application 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 the operation of 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 (e.g., one or more monitored components that operate when one or more applications 112 are being used) used to perform the operation of one or more applications 112.

[0023] Using metering data 106, power consumption analysis 108 is performed to determine the power consumption or usage attributable to each of one or more applications 112. In some examples, power consumption analysis 108 includes normalizing power consumption or usage, such as over a period of time or across multiple users, and / or across a group or type of applications (e.g., normalizing for each individual user across the range of power usage for each application 112), and also includes comparison of subsets of one or more applications 112. In one example, each application 112 is classified and normalization of power consumption or usage is performed across each category of application 112. That is, normalization of power consumption or usage is performed separately for each category of application 112. Note that the classification of application 112 can be performed using any definition of category type (e.g., based on application store classification such as application experience, or a particular application (app) store (such as the Windows® app store), or classification within the acquisition time of other application acquisition experiences). As a result, power consumption analysis 108 can be performed to determine and compare the power consumption or usage of similar applications 112.

[0024] In one or more examples, processing of power consumption or usage data, such as that 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 the EIR for each application 112, at least in part, based on the calculated power consumption or usage of the application 112 (e.g., average or total power consumption over a defined period). Note that in some examples, the dynamic label 110 is updated over time. For example, when an update is provided to application 112 (e.g., an update from the application developer), 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 other defined periods, such as several months later, or after a new application 112 of a threshold amount has been added to the category of application 112. 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 application 112. For example, the dynamic label 110 represents power consumption or usage feedback related to application 112 (e.g., power consumption feedback for Windows® applications). In some examples, the label 110 may be displayed or provided to the user, such as on the product description page (PDP) of each application 112 (e.g., displaying the power rating within the Windows® Store experience and on the web page used to acquire the application). In some examples, the dynamic label 110 (e.g., power consumption rating) may be updated periodically to give individual application developers time to modify the application and boost the rating (e.g., character or value rating).

[0025] It should be recognized that different types of data can be collected and stored, for example, in a database 116. For example, the monitor 104 may be configured to capture specific types of data in various examples, such as D3 telemetry data (e.g., electricity, CPU consumption, minutes used for processes), network usage data (power consumption is derived from this data), display usage (e.g., foreground / background applications, pixels lit by foreground applications), disk activity, and user usage of application 112 (e.g., daily active usage of application 112 by users, data minute activity usage per user). Other types of data can be acquired using a properly configured monitor 104, for example. Other types of data may include, but are not limited to, backlight (high / low) usage, screen on / off data, volume level / speaker usage, and battery power reduction (e.g., power saving mode). In general, the systems and methods described herein can be configured to capture and process any type of data using a power consumption analysis 108, as described in more detail herein. For example, a Windows® application is used to collect telemetry (diagnostic) data usable by the power consumption analysis 108. That is, in some examples, a database 116 stores a log of telemetry data collected by the system. The log can then be parsed or filtered to obtain data relating to power consumption or usage data for the power consumption analysis 108 (e.g., extracting metrics or data related to power consumption or usage data, as described in more detail herein). In some examples, the database 116 forms part of or is embedded within an identity system in 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 the calculation of program (application) power usage or consumption metrics. Information representing application power usage metrics is output in a format that allows for comparisons between applications. Note that in some examples, the instrumentation data 106 may be further analyzed to determine at least one trend in power usage over time, and to determine user groups associated with power usage.

[0027] It should also be noted that in various examples, different criteria and data can be used to perform the power consumption analysis 108. That is, different parameters, criteria, and data can be used to analyze the instrumentation data 106. The power consumption analysis 108 can also be performed to determine different types of data related to the power consumption by the application 112. For example, the power consumption analysis 108 can be performed to determine the power consumption profile of the application 112, which correlates the power consumption with the computing system activity of the device 102 when the application 112 is running (e.g., operating or idle).

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

[0029] In some examples, the processing system 200 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., Microsoft HoloLens®), each of which can run one or more applications 112. In the illustrated examples, the data processing system 200 is shown to be connected to the end-user computing devices via a computer network 214, which is illustrated 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 using a process flow 100 to determine the relative power consumption or usage between applications 112. Note that in some examples, the processing system 200 performs data analysis on the received instrumentation data 106, which may be normalized per user and used to generate one or more graphs (for example, a script may be implemented to generate one or more power consumption graphs representing power consumption profiles). In this way, a framework for comparing the power consumption or usage of applications 112 is provided.

[0031] It should be noted that processing system 200 or some or all of the functionality of processing system 200 may be implemented in one or more end-user computing devices. Processing system 200 in this example also implements a rating generator 216 that generates ratings based on power consumption analysis. For example, the rating generator 216 may generate power consumption ratings for one or more applications 112, which may be based on data normalized using different criteria. In some examples, 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 power data ("up" and "down").

[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. Exemplary types of hardware logic components used include, but are not limited to, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SOC) systems, composite programmable logic devices (CPLDs), and graphics processing units (GPUs).

[0033] In this way, environmental impact ratings are performed using the present disclosure, for example, by using a power consumption rating generation system 300 as illustrated in Figure 3. In one example, the power consumption rating generation system 300 uses a comparative power consumption analysis 308 to generate power consumption ratings 310 for each of several applications (e.g., application 112) as an output. More specifically, the power consumption rating generation system 300 includes a power consumption calculation processor 302 configured as a processing engine that performs a comparative power consumption analysis 308 on an 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 relating to 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 applications (e.g., a comparison of normalized instrumentation data as described herein). Based on this scale conversion comparison, a power consumption rating 310 is generated, which may be the rating for each application within the defined application type, as will be described in more detail herein.

[0034] In various examples, the power consumption calculation processor 302 analyzes the power consumed by a computing device as a result of 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 as a result of applications executed by the processing units of the computing device is performed over time and used to generate a power consumption rating 310. For example, graphs 400 and 402 in Figure 4 illustrate the power consumption by applications over time. Graph 400 illustrates the average application usage over time, and graph 402 illustrates the corresponding average power usage over time. As can be seen from the figure, telemetry data such as instrumentation data 106 can be used to generate a power consumption profile for one or more applications (illustrated as a single application in Figure 4).

[0035] The data illustrated in Figure 4 allows for the calculation of application power consumption or usage, and normalization over time for comparison with the power consumption or usage of other applications. In one example, power consumption data over time is totaled (e.g., totaling the power consumed by the CPU over the period that application 1 is running). Then, the total is divided by the number of active minutes or active users to obtain a normalized value. As a result, the application instance minutes can be determined (e.g., application 1 consumes X# joules for 1 minute). This data is used for each of multiple applications to generate a sufficient value, such as a power consumption rating of 310, which is updated periodically (e.g., every 3 to 6 months).

[0036] For example, an EIR (Application Indicator) is generated by combining telemetry data on CPU usage, display usage, and the usage of other system components used by an application while it is running on an operating system (e.g., Windows®). This rating is normalized within each application category (e.g., music streaming, note-taking, calculator) to provide a letter (e.g., A-G) or other relative metric that is easily understandable to consumers, facilitating them to focus on low-power, low-impact applications, and enabling developers to be more aware of and optimize resource usage. For example, the EIR can be updated periodically to encourage developers to improve resource consumption.

[0037] In this way, relative power consumption values ​​are generated using telemetry data on the usage of both the system and the application in various examples. In some examples, the relative values ​​provide comparisons between similar types of applications, which are published for user consumption. For example, PDP500 is shown in Figure 5, illustrating ratings 504 corresponding to each of several applications 502. That is, relative power consumption ratings 504 generated for each of the applications 502 using one or more examples described herein are provided to the user. The range or scale of the rating is identified by the rating range 506. In this example, the rating range 506 is defined by letters, where A is the lowest rating (consuming the most power relatively) and G is the highest or best rating (consuming the least power relatively), or vice versa. Each rating level can be defined as desired and may include sublevels (such as plus or minus each letter). In some examples, the rating of each letter corresponds to a range of power consumption usage, as determined by the examples described herein. For example, each character is defined by the upper and lower power consumption limits corresponding to the normalized values ​​of each application 502. It should be noted that any indicator of relative power consumption, such as numbers or shapes, can be used in the rating scale.

[0038] In one example, referring again to Figure 3, the power consumption calculation processor 302 generates a power consumption rating 310 that is displayed or made to be displayed on a rating page 318 or on a display accessible to other users. In some examples, the rating page 318 is configured similarly to that of the PDP 500, allowing the user to view power consumption ratings for one or more applications, such as within a specific application type or class.

[0039] Furthermore, with respect to the power consumption calculation processor 302, various parameters for defining the analysis to be performed can be specified by the operator. For example, the operator can 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 power consumption analysis for 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 contain applications for use on one or more operating platforms or systems, such as the Windows® operating system or the Android operating system. Also, the application may be configured to run on different devices such as mobile phones, computers, and game systems.

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

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

[0042] Referring to Method 600, the computing device receives an instrumentation dataset related to the application in 602. For example, telemetry data, network usage data, display usage data, disk activity data, and application usage data related to the application are acquired. This data is acquired for application usage over a defined period. Note that some of this data is acquired during the normal operation of the application on the operating platform for separate use in diagnostic operations (e.g., data acquired for analysis other than power consumption). In other words, this data is already available within the system. However, in other examples, one or more monitoring 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 by 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 an application. That is, instrumentation data relevant to or related to calculations used to analyze the power consumption of an application is maintained or output for processing by a power consumption calculation processor 302 (Figure 3), etc. In some examples, filtering is a data mining process that identifies only specific instrumentation data acquired by the system for use in power consumption processing, as described herein. Note 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 the corresponding power consumption values ​​can be calculated). For example, telemetry data and display usage data have a direct correlation or value with respect to power consumption. Network usage data has an indirect correlation with power consumption and is used to derive associated power consumption based on components operating during network usage time, such as that resulting from the execution of an application.

[0044] The filtered instrumentation data is used in 606 to calculate the power consumption or usage of the application. For example, for processes and / or components that operate in response to the execution of the application, total usage, average usage, and / or other usage over a defined period are calculated. That is, in some examples, the corresponding instrumentation data for processes and / or components identified as operations when the application is executed is summed up. In this way, the total power consumption usage of the corresponding device resources for the application is determined. The calculation can be performed over various time frames or windows as required. The application's power consumption is normalized in 608. For example, the power consumption calculated by the application (e.g., indirect and direct power consumption data resulting from the execution of the application) is normalized. In various examples, any appropriate mathematical normalization process can be used. In one or more examples, normalization may be performed over one or more of the following: a period, multiple users, a specific type of application, a specific component usage, etc. 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 classified in 610. For example, multiple application types are defined, and the normalized power consumption of an application is associated with the corresponding application type. Application types can be defined at any granularity level, and in some examples, this is at least partially based on the application types defined in the application store. Note that the classification defines a subset of the normalized power consumption used to generate the rating in some examples.

[0046] The classified power consumption values ​​are compared in 612; that is, 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., a bell curve graph distribution) or other data value distribution scheme is used to rank or distinguish different levels or ranges of power consumption by application type.

[0047] Next, in 614, a rating based on power consumption is generated. For example, a cutoff level or threshold level based on a defined distribution may be used to select the rating range or level of the rating scheme. In some examples, the rating levels or ranges are set based on the absolute value of the calculated power consumption per application, the number of applications included in each rating level or range, etc. That is, the rating scheme can be made different based on a specific operating environment, a desired change in operation or design behavior regarding power consumption, etc. The rating for each application can then be made available for display on a PDP (e.g., within the Windows® Store experience). Note that different rating or ranking schemes may be used, and may be any relative values ​​corresponding to the calculated power consumption or usage. Note that in some examples, as described in more detail herein, the ratings are updated periodically.

[0048] In one example within a Windows® operating environment, data arrives at an existing telemetry component of the Windows® operating system, which is stored in several heterogeneous databases. SQL queries are performed on this data, and normalization is applied to a large number of data points across users with different threshold periods and threshold numbers to create application power consumption values. In some examples, the power consumption values ​​are averaged values ​​(see graphs 400 and 402 in Figure 4). The power consumption values ​​are used to generate rating values.

[0049] Therefore, in some examples, Method 600 can be used to calculate the power consumption or usage of an application and generate an application rating based on the calculated power consumption or usage. Thus, consumers or programmers can easily identify applications that use less power than others.

[0050] Exemplary operating environment This disclosure is operable in a computing device 702 as an example, as shown in the functional block diagram 700 of Figure 7. In one example, the components of the computing device 702 may be implemented as part of an electronic device as described herein in one or more examples. The computing device 702 comprises one or more processors 704, which may be a microprocessor, a controller, or any other suitable type of processor, for processing computer executable instructions for controlling the operation of the electronic device. Platform software with an operating system 706, or any other suitable platform software, may be provided on the device 702 to enable application software 708 to run on the device. According to one example, the calculated application power consumption 710 used to generate a rating 712 can be achieved by software.

[0051] Computer executable instructions may be provided using any computer-readable medium accessible by the computing device 702. Computer-readable mediums 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 technique for storing information such as computer-readable instructions, data structures, and program modules. Computer storage media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission media usable for storing information for access by the computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, etc., in modulated data signals such as carrier waves or other transport mechanisms. As defined herein, computer storage media do not include communication media. Therefore, computer storage media are not to be interpreted as the propagating signal itself. The propagating signal itself is not an example of a computer storage medium. Although the computer storage medium (memory 714) is shown within the computing device 702, those skilled in the art will recognize that the storage may be distributed, or located remotely, and may be accessed via a network or other communication link (for example, using a communication 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 a speaker), which may be separate from or integrated with the electronic devices. 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. An 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 and provides a natural user interface (NUI). This user input may be used for e-ink authoring, content browsing, ink control selection, video playback with e-ink overlays, and other purposes. In some examples, the input / output controller 718 outputs data to devices other than the display device, such as a locally connected printing device.

[0054] The functionalities described herein may be performed, at least in part, by one or more hardware logic components. According to one embodiment, the computing device 802 is configured by program code to perform the described examples and implementation forms of operations and functionalities when executed by one or more processors 704. Alternatively or additionally, the functionalities described herein may be performed, at least in part, by one or more hardware logic components. Exemplary types of usable hardware logic components, though not limited to FPGAs, ASICs, ASSPs, SOCs, CPLDs, and GPUs.

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

[0056] While the examples in this disclosure are described in relation to exemplary computing system environments, they can be implemented with a number of other general-purpose or dedicated computing system environments, configurations, or devices.

[0057] Examples of well-known computing systems, environments, and / or configurations suitable for use with aspects of this 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 consumer electronics, mobile phones, wearable or accessory form factors (e.g., watches, glasses, headsets, or earphones), mobile computing and / or communication devices, network PCs, minicomputers, mainframe computers, and distributed computing environments including any of the above systems or devices. Generally, this disclosure can operate on any device having processing power capable of executing instructions as described herein. Such systems or devices may accept user input by any means, such as from input devices such as keyboards or pointing devices, via gesture input, via proximity input (e.g., by hovering), and / or via voice input.

[0058] Examples of this disclosure may be described in the general context of computer executable instructions, such as program modules, which are 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 a particular task or implement a particular abstract data type. Aspects of this disclosure may be implemented with any number and organization of such components or modules. For example, aspects of this disclosure are not limited to the specific computer executable instructions or specific components or modules illustrated in the figures and described herein. Other examples of this disclosure may include different computer executable instructions or components with more or less functionality than those illustrated and described herein. In examples involving a general-purpose computer, aspects of this disclosure transform the general-purpose computer into a dedicated computing device when configured to execute the instructions described herein.

[0059] Other examples include the following: A computerized method for generating power consumption ratings, Receiving instrumentation data compatible with multiple applications, By processing the received instrumentation data, the relative power consumption values ​​for each application in multiple applications are calculated, This involves comparing the relative power consumption values ​​of each application, Based on the comparison, generate a power consumption rating for each application, Computerized methods, including those mentioned above.

[0060] Other examples include the following: A system for generating power consumption ratings, wherein the system At least one processor, A system comprising at least one memory containing computer program code, wherein the at least one memory and the computer program code are operated by at least one processor. Receiving instrumentation data compatible with multiple applications, By processing the received instrumentation data, the relative power consumption values ​​for each application in multiple applications are calculated, This involves comparing the relative power consumption values ​​of each application, Based on the comparison, generate a power consumption rating for each application, A system configured to have at least one processor perform this task.

[0061] Other examples include the following: When executed by the processor, at least, Receiving instrumentation data compatible with multiple applications, By processing the received instrumentation data, the relative power consumption values ​​for each application in multiple applications are calculated, This involves comparing the relative power consumption values ​​of each application, Based on the comparison, generate a power consumption rating for each application, One or more computer storage media having computer-executable instructions for generating a power consumption rating, which causes a processor to perform the following action.

[0062] Alternatively, or in addition to the examples above, the examples include any combination of the following: Classifying each application from multiple applications into one or more categories, and performing the above comparison only within each category. Normalizing relative power consumption values, wherein the normalization is performed over a defined period and over at least one of multiple users. To generate updated power consumption ratings for at least one of the applications by periodically generating power consumption ratings. Displaying power consumption ratings to users, where the user is either a consumer or a software developer. Processing the received instrumentation data to calculate relative power consumption values ​​includes at least one of summing and averaging the received instrumentation data. The instrumentation data includes at least one of the following: telemetry data, network usage data, display usage data, disk activity data, and application usage data.

[0063] As will be apparent to those skilled in the art, any range or device value given herein can be extended or modified without loss of the desired effect.

[0064] While this subject matter is described in terms specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the attached claims is not necessarily limited to the specific features or actions described above. More precisely, the specific features and actions described above are disclosed as examples of forms of implementation of the claims.

[0065] It will be understood that the above benefits and advantages may relate to one example or to several examples. Examples are not limited to those that solve any or all of the problems described, or that possess any or all of the stated benefits and advantages. Furthermore, it will be understood that a reference to “one” item refers to one or more of those items.

[0066] Examples illustrated and described herein, as well as examples not specifically described herein but within the scope of the claims, construct exemplary means for training neural networks. One or more illustrated processors 1004, together with computer program code stored in memory 1014, construct exemplary processing means for fusing multimodal data. In this specification, the term “comprising” is used to mean including one or more features or actions that follow without prejudice to the presence of one or more additional features or actions.

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

[0068] The order in which the actions in the examples of the disclosure illustrated and described herein is performed is not mandatory unless otherwise specified. That is, the actions may be performed in any order unless otherwise specified, and the examples of the disclosure may include more or fewer actions than those disclosed herein. For example, performing or doing a particular action before, simultaneously with, or after another action is intended to be within the scope of the embodiments of the disclosure.

[0069] When describing elements of aspects or examples thereof of this disclosure, the articles “a,” “an,” “the,” and “said” are intended to indicate that there is one or more elements. The terms “comprising,” “including,” and “having” are intended to indicate comprehensiveness and that there may be additional elements other than those listed. The term “exemplary” is intended to mean “an example of….” The expression “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 expression “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.” As used herein and in the claims, the expression “and / or” shall be understood to mean “either one or both” of the thus coordinated elements, that is, elements that exist sometimes conjugately and sometimes disjunctly. Likewise, any multiple elements listed with “and / or” shall be interpreted as “one or more” of the thus coordinated elements. Other elements other than those specifically identified by the “and / or” clause may exist at will, whether or not they are related to the specifically identified elements. Therefore, as a non-restrictive example, when a reference to "A and / or B" is used in conjunction with an open-ended word such as "comprising," in one implementation it may refer to A only (optionally including elements other than B), in another implementation it may refer to B only (optionally including elements other than A), and in yet another implementation it may refer to both A and B (optionally including other elements), and so on.

[0071] Where 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 as inclusive, that is, including not only at least one inclusion, but two or more of several elements or lists of elements, and optionally, further unlisted items. Only terms that explicitly indicate the opposite, such as “one of,” “exactly one of,” or “consisting of,” as used in the claims, refer to the inclusion of exactly one element of several elements or lists of elements. In general, where used, the term “or” shall be interpreted as indicating an exclusive choice (i.e., “one or the other, but not both”) only when preceded by an exclusive term such as “either one,” “one of,” “only one,” or “exactly one of.” Where used in the claims, “consisting essentially of” shall have the usual meaning as used in the field of patent law.

[0072] As used herein and in the claims, the expression “at least one” in relation to 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 element specifically enumerated in the list of elements, nor excluding any combination of elements in the list of elements. This definition also allows for the optional presence of elements other than those specifically identified in the list of elements to which the expression “at least one” refers, whether or not they are related to the specifically identified elements. Therefore, as an unrestricted 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 two or more) A where B is absent (and optionally including elements other than B), in another implementation to at least one (optionally including two or more) B where A is absent (and optionally including elements other than A), and in yet another implementation to at least one (optionally including two or more) A and at least one (optionally including two or more) B (and optionally including other elements), and so on.

[0073] While the aspects of this disclosure have been described in detail, it will be apparent that modifications and variations are possible without departing from the scope of the aspects of this disclosure as defined in the attached claims. Since various changes can be made to the above-described constructions, products, and methods without departing from the scope of the aspects of this disclosure, all matters contained herein and shown in the attached drawings are intended to be conspicuous and not construed in a restrictive sense.

Claims

1. A computerized method for generating power consumption ratings, Receiving instrumentation data compatible with multiple applications, By processing the received instrumentation data, the relative power consumption values ​​for each of the multiple applications are calculated, Comparing the relative power consumption values ​​of each application, Based on the above comparison, a power consumption rating for each application is generated, Computerized methods, including those mentioned above.

2. The computerized method according to claim 1, further comprising classifying each application of the plurality of applications into one or more categories from among a plurality of categories, and performing the comparison only within each category.

3. The computerized method according to claim 1 or 2, further comprising normalizing the relative power consumption values, wherein the normalization is performed over a defined period and over at least one of a plurality of users.

4. The computerized method according to any one of claims 1 to 3, further comprising generating an updated power consumption rating for at least one of the applications by periodically performing the generation of the power consumption rating.

5. The computerized method according to any one of claims 1 to 4, further comprising displaying the power consumption rating to a user, wherein the user is either a consumer or a software developer.

6. The computerized method according to any one of claims 1 to 5, wherein calculating a relative power consumption value by processing the received instrumentation data includes at least one of summing and averaging the received instrumentation data.

7. The computerized method according to any one of claims 1 to 6, wherein the instrumentation data includes at least one of telemetry data, network usage data, display usage data, disk activity data, and application usage data.

8. A system for generating power consumption ratings, wherein the system At least one processor, A system comprising at least one memory containing computer program code, wherein the at least one memory and the computer program code are used by the at least one processor. Receiving instrumentation data compatible with multiple applications, By processing the received instrumentation data, the relative power consumption values ​​for each of the multiple applications are calculated, Comparing the relative power consumption values ​​of each application, Based on the above comparison, a power consumption rating for each application is generated, A system configured to have at least one of the processors perform the following.

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

10. The system according to claim 8 or 9, wherein the at least one memory and the computer program code are configured to cause the at least one processor to normalize the relative power consumption values, wherein the normalization is performed over a defined period and over at least one of a plurality of users.

11. The system according to any one of claims 8 to 10, wherein the at least one memory and the computer program code are configured to cause the at least one processor to periodically generate the power consumption rating, thereby causing the at least one processor to generate an updated power consumption rating for at least one of the applications.

12. The system according to any one of claims 8 to 11, wherein the at least one memory and the computer program code are configured to cause the at least one processor to display the power consumption rating to a user, wherein the user is either a consumer or a software developer.

13. The system according to any one of claims 8 to 12, wherein calculating a relative power consumption value by processing the received instrumentation data includes at least one of summing and averaging the received instrumentation data.

14. The system according to any one of claims 8 to 13, 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, at least, Receiving instrumentation data compatible with multiple applications, By processing the received instrumentation data, the relative power consumption values ​​for each of the multiple applications are calculated, Comparing the relative power consumption values ​​of each application, Based on the above comparison, a power consumption rating for each application is generated, One or more computer storage media having computer-executable instructions for generating a power consumption rating, which cause the processor to perform the above action.