Skip to content

Energy Efficiency Tactic

An energy efficiency tactic is a design choice that lowers energy use. Energy catalogues group these tactics around monitoring, allocating resources, and reducing demand. (See Architectural Tactic for the general idea of a tactic.)

Monitoring resources. You cannot optimize what you cannot measure. Monitoring energy consumption is a prerequisite for making a workload more energy efficient. Automatic monitoring also gives insight into how the software behaves. That insight supports later optimization.

Allocating resources. Allocation tactics decide how work is spread over resources. Resource-aware job scheduling is one example. It distributes jobs across several resources. The aim is to keep idle time and wasted energy low.

Reducing resource demand. Demand-side tactics shrink the work the system must do. Reducing computational overhead is one example. It cuts the processing done per event, so each event finishes faster with fewer processor cycles. Less computation per event draws less power. That lowers the energy spent per unit of work.

A team runs a nightly batch of report jobs on a few servers. First, they measure the energy each job uses, to find the costly ones (monitoring). Next, they schedule jobs so that servers do not sit idle between runs (allocating). Last, they remove repeated calculations in the heaviest job, so each record needs less processing (reducing demand).

Saving energy can cost something else. The challenge is to cut energy use without substantially harming other quality attributes. In one study, some tactics raised response time by up to 25.9%. Reducing computational overhead also hurts maintainability. Memoization (reusing earlier results) and tuned loops add code that the team must understand and preserve.

The three groups of energy efficiency tactics, with examples.

Diagram source
mindmap
root((Energy efficiency tactics))
Monitor resources
Measure energy use
Observe software behavior
Allocate resources
Resource-aware job scheduling
Reduce resource demand
Reduce computational overhead per event
  • The document states how energy consumption is monitored for the workloads being optimized.
  • Energy-saving tactics are listed together with their impact on other quality attributes, such as response time.
  • Where per-event processing is reduced, the maintenance cost of the added code is acknowledged.