Platform-specific best practices

From Green software

(Difference between revisions)
Jump to: navigation, search
Line 21: Line 21:
== Best practices for embedded systems ==
== 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.
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.
+
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]]
+
* [[Decrease algorithmic complexity]]
-
# [[Power down peripherals]]
+
* [[Power down peripherals]]
-
# [[Avoid polling]]
+
* [[Avoid polling]]
-
# [[Clock frequency#Lower clock|Lower the clock frequency]]
+
* [[Clock frequency#Lower clock|Lower the clock frequency]]
-
# [[Low level programming|Use low level programming]]
+
* [[Low level programming|Use low level programming]]
-
# [[Low level programming#Programming partial low level|Use assembly for frequently executed code sequences]]
+
* [[Low level programming#Programming partial low level|Use assembly for frequently executed code sequences]]
-
# [[Specific purpose hardware|Use specific-purpose hardware]]
+
* [[Specific purpose hardware|Use specific-purpose hardware]]
-
# [[Sleep|Put application to sleep]]
+
* [[Sleep|Put application to sleep]]
-
# [[Avoid polling#Less frequent polling|Less frequent polling]]
+
* [[Avoid polling#Less frequent polling|Less frequent polling]]
-
# [[Avoid polling#Timer coalescing|Use flexible timers]]
+
* [[Avoid polling#Timer coalescing|Use flexible timers]]
-
# [[Software-hardware interaction optimizations]]
+
* [[Software-hardware interaction optimizations]]
== Best practices for personal computers ==
== Best practices for personal computers ==

Revision as of 23:20, 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 essential techniques include putting applications to sleep and avoiding polling.

Best practices for personal computers

Personal tools