Best practices for energy efficient software

From Green software

Revision as of 13:00, 16 September 2010 by Green (Talk | contribs)
Jump to: navigation, search

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. Compiler optimization
  28. Reduce QoS dynamically
  29. Keep 3rd party software up-to-date
  30. Free or unmap unneeded memory
  31. Reduce memory leaks
  32. Use asynchronous I/O
  33. Make use of high performance libraries
  34. Software-hardware interaction optimizations

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