Platform-specific best practices

From Green software

(Difference between revisions)
Jump to: navigation, search
(New page: == 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...)
Line 1: Line 1:
 +
Most of the described techniques are quite generic. In different
 +
Line 15: Line 17:
* [[Avoid polling#Timer coalescing|Use flexible timers]]
* [[Avoid polling#Timer coalescing|Use flexible timers]]
-
== Best practices for embedded systems ==
+
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 [http://www.cs.umass.edu/~arunab/paper/tailender_techreport.pdf].
 +
== 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|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 the most essential techniques are avoiding polling and putting applications to sleep.
 +
# [[Decrease algorithmic complexity]]
 +
# [[Power down peripherals]]
 +
# [[Avoid polling]]
 +
# [[Clock frequency#Lower clock|Lower the clock frequency]]
 +
# [[Low level programming|Use low level programming]]
 +
# [[Low level programming#Programming partial low level|Use assembly for frequently executed code sequences]]
 +
# [[Specific purpose hardware|Use specific-purpose hardware]]
 +
# [[Sleep|Put application to sleep]]
 +
# [[Avoid polling#Less frequent polling|Less frequent polling]]
 +
# [[Avoid polling#Timer coalescing|Use flexible timers]]
 +
# [[Software-hardware interaction optimizations]]
== Best practices for personal computers ==
== Best practices for personal computers ==

Revision as of 23:12, 10 January 2011

Most of the described techniques are quite generic. In different


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:

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 the most essential techniques are avoiding polling and putting applications to sleep.

  1. Decrease algorithmic complexity
  2. Power down peripherals
  3. Avoid polling
  4. Lower the clock frequency
  5. Use low level programming
  6. Use assembly for frequently executed code sequences
  7. Use specific-purpose hardware
  8. Put application to sleep
  9. Less frequent polling
  10. Use flexible timers
  11. Software-hardware interaction optimizations

Best practices for personal computers

Personal tools