Platform-specific best practices
From Green software
Line 1: | Line 1: | ||
- | Most of the described techniques are quite generic. | + | Most of the described techniques are quite generic. On different hardware platforms, different energy saving techniques are more useful than others. Below are some categories of computer systems and related energy efficient best practices. |
- | + | ||
- | + | ||
== Best practices for mobile platforms == | == Best practices for mobile platforms == | ||
Line 34: | Line 32: | ||
* [[Avoid polling#Timer coalescing|Use flexible timers]] | * [[Avoid polling#Timer coalescing|Use flexible timers]] | ||
* [[Software-hardware interaction optimizations]] | * [[Software-hardware interaction optimizations]] | ||
- | |||
- |
Current revision
Most of the described techniques are quite generic. On different hardware platforms, different energy saving techniques are more useful than others. Below are some categories of computer systems and related energy efficient best practices.
Best practices for mobile platforms
Users of smart phones and PDA's expect their product to have a long battery life. The microprocessors and peripherals on these machines are very powerful (and with that power-hungry) to provide the user with the best experience possible. Despite that energy efficiency is wanted in mobile computers for the purpose of a longer battery life, instead of reducing the carbon footprint, the same techniques apply and the effect reduces the carbon footprint of the software.
The following best practices are useful to constrain the device of emptying the battery within a couple of hours:
- Lazy loading
- Efficient datatraffic
- Decrease algorithmic complexity
- Power down peripherals
- Lower the clock frequency
- Put application to sleep
- Less frequent polling
- Use flexible timers
Very specifically energy can be saved by using wifi instead of a GSM or GPRS network, because sending and receiving network traffic over wifi consumes less energy [1].
Best practices for embedded systems
Embedded systems come in many varities but usually describe small systems controlled by a microcontroller or digital signal processor, designed to perform a specific task. The variety of embedded systems is so big that not many specific characteristics can be identified. The following list of best practices are applicable to computing systems that are low on user interactions and serve a specific purpose. Because of the specific function often performed by embedded systems during the development process software-hardware interaction optimizations are worth to make. An especially interesting type of embedded systems that have a high focus on energy efficiency are battery-powered devices of which batteries are hard or impossible to replace (for example remotely placed sensors or pacemakers). In those systems essential techniques include putting applications to sleep and avoiding polling.
- Decrease algorithmic complexity
- Power down peripherals
- Avoid polling
- Lower the clock frequency
- Use low level programming
- Use assembly for frequently executed code sequences
- Use specific-purpose hardware
- Put application to sleep
- Less frequent polling
- Use flexible timers
- Software-hardware interaction optimizations