# Energy Efficiency Tactic

**In short:** Energy efficiency tactics are design moves that cut the energy software uses while it still does its job. They help you measure energy use, schedule work well across resources, and reduce the work each event causes.

## Explanation

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.

## Example

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).

## Trade-offs

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.

```mermaid
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
```

## Checks

- 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.

## Related

- [Architectural Tactic](https://arc.fuet.ch/concepts/tactics/architectural-tactic.md)
- [Performance Tactic](https://arc.fuet.ch/concepts/tactics/performance-tactics.md)
- [Tactic Trade-off Balancing](https://arc.fuet.ch/concepts/tactics/tactic-trade-off-balancing.md)
- [Quality Attribute](https://arc.fuet.ch/concepts/quality-attributes/quality-attribute.md)
- [Performance Efficiency](https://arc.fuet.ch/concepts/quality-attributes/performance-efficiency.md)
- [Choosing and Applying Tactics](https://arc.fuet.ch/concepts/tactics/choosing-and-applying-tactics.md)
- [Maintainability](https://arc.fuet.ch/concepts/quality-attributes/maintainability.md)

## Sources

- [Automatically monitor efficiency per workload | Awesome and Dark Tactics](https://s2group.cs.vu.nl/AwesomeAndDarkTactics/tactics/2022-04-20-automatically-monitor-efficiency) — s2group.cs.vu.nl, accessed 2026-11-09
- [Computational Overhead Reduction | arc42 Quality Model](https://quality.arc42.org/approaches/computational-overhead-reduction) — quality.arc42.org, accessed 2026-11-09
- [Implement Resource-Aware Job Scheduling | Awesome and Dark Tactics](https://s2group.cs.vu.nl/AwesomeAndDarkTactics/tactics/2025-08-17-implement-resource-aware-job-scheduling) — s2group.cs.vu.nl, accessed 2026-11-09
- [On the Effectiveness of Microservices Tactics and Patterns to Reduce Energy Consumption: An Experimental Study on Trade-Offs](https://arxiv.org/html/2501.14402) — arxiv.org, accessed 2026-11-09
