Best practices for energy efficient software

From Green software

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
Based on sources from literature and the industry, in [1] a set of best practices has been devised. Best practices that are applicable to source code only can be found on the page on [[source-code best practices]]. Generic best practices can be found in the following list:
+
Based on sources from literature and the industry, in [[Energy efficient software (Master Thesis)|''Energy efficient software'']] a set of best practices has been devised. Best practices that are applicable to source code only can be found on the page on [[source-code best practices]]. Generic best practices can be found in the following list:
# [[Lazy loading]]
# [[Lazy loading]]
Line 38: Line 38:
The previous list contains techniques that can be applied during software development, that can improve energy efficiency. Some of the best practices are only useful in highly specific cases, to an extent that they are not realistic to most software developers. For this purpose lists are conducted showing per list a set of [[platform-specific best practices|best practices that are useful for a specific platform]].
The previous list contains techniques that can be applied during software development, that can improve energy efficiency. Some of the best practices are only useful in highly specific cases, to an extent that they are not realistic to most software developers. For this purpose lists are conducted showing per list a set of [[platform-specific best practices|best practices that are useful for a specific platform]].
-
 
-
== References ==
 
-
[1]. Gude, S. 2010. [[Energy efficient software (Master Thesis)|''Energy efficient software'']]
 

Revision as of 13:34, 15 September 2010

Based on sources from literature and the industry, in Energy efficient software a set of best practices has been devised. Best practices that are applicable to source code only can be found on the page on source-code best practices. Generic best practices can be found in the following list:

  1. Lazy loading
  2. Efficient datatraffic
  3. Decrease algorithmic complexity
  4. Power down peripherals
  5. Efficient UI
  6. Static GUI
  7. Use efficient queries
  8. Load balancing
  9. Avoid polling
  10. Avoid use of byte-code
  11. Make proper use of virtualization
  12. Lower the clock frequency
  13. Use low level programming
  14. Use assembly for frequently executed code sequences
  15. Use JIT Compiler
  16. Use specific-purpose hardware
  17. Put application to sleep
  18. Code Migration (agents)
  19. Batch IO
  20. Optimal use peripherals
  21. Less frequent polling
  22. Use flexible timers
  23. Reduce data redundancy
  24. Properly handle external signals and events
  25. Reduce transparency/abstractions
  26. Optimize for underlying layers
  27. [[Use proxies|Use a proxy to maintain network presence]
  28. Compiler optimization*
  29. Reduce QoS dynamically
  30. Keep 3rd party software up-to-date
  31. Free or unmap unneeded memory
  32. Use asynchronous I/O
  33. Make use of high performance libraries
  34. Use optimized compiler


The previous list contains techniques that can be applied during software development, that can improve energy efficiency. Some of the best practices are only useful in highly specific cases, to an extent that they are not realistic to most software developers. For this purpose lists are conducted showing per list a set of best practices that are useful for a specific platform.

Personal tools