http://www.eventhelix.com/realtimemantra/basics/optimizingcandcppcode.htm