Green computing starts with your code

Published by | Wednesday, September 26th, 2012

Is a paperless society really an energy savior?

Manufacturing office paper consumes more energy than producing food, and at nearly 8 percent of US energy going to paper, even more than steel. With these statistics in mind, it’s easy to believe a paperless society would conserve massive amounts of energy. Consider: An electronic memo doesn’t consume paper, doesn’t use ink, doesn’t require a printer spinning motors, and doesn’t require a delivery truck. Some bright folks calculated the savings for sending an electronic memo over paper is about .36 kilowatt-hours (kWh), or an energy-spend equivalent to microwaving three potatoes.

The Internet has a carbon footprint

But hold on a minute—that savings assumes an electronic memo uses no electricity, which is false. According to one estimate, moving one megabyte across the Internet costs .006 kWh, or the energy contained in one very small bite of a chocolate chip cookie.

We move a lot of kilowatts across the Internet. Different groups will provide different estimates, but Cisco estimates [CA3] traffic will pass the zettabyte threshold by 2017. No matter how you run the numbers, all those .006 kWh chocolate chip cookie–sized bytes of data have an impact. Google alone used 2,259,998 megawatt-hours (mWh) in 2010. When you’re consuming this statistic, keep in mind 1 mWh can sustain 1,000 homes for one hour. Another interesting tidbit: Google estimates an Internet search consumes one-third of a watt-hour or .0003 kWh (if you’re keeping track in cookie similes, this is about a cookie crumb).

Moving data isn’t the only thing computers do; they also store data. As an example, services such as Amazon EC2 charge by demand based on processor time, and a majority of that payment goes for electricity. According to the Northwest Power and Conservation Council, at this rate these server farms will account for about 10 percent of northwestern electricity by 2030. Code costs money to run. Inefficient code costs more money to run.

Your code is the solution

So why is the content manager for the Developer segment at bringing this up? What does this have to do with programmers? Other than turning off lights and computers, what can we do?

Plenty. Our code drives the microprocessors that use all this power. Our code makes calls to APIs that spin up central processing units (CPUs) that create thermal load that require cooling that devour electricity.

Mobile devices bring this issue into sharp focus. Unnecessary code chews up precious battery life, reducing the time between recharges. Apple banned Adobe Flash from the iPhone because of excessive battery usage. Interestingly, this battery drain seems to be related to code, not hardware. Imagine the difference if Adobe had been able to reduce the power consumed by Flash with more efficient programming.

Tips for writing efficient code

Your office has power-saving features: lights controlled by timers, setback thermostats, and paper recycling. Why not write code with the same intent? Cache data from the server and reduce the number of queries. Optimize SQL calls to produce only the results you need. Once we start looking for ways to reduce load on the Internet, we’ll see many more options.

• Profile your code to reduce unnecessary cycles. In Drew Falkman‘s PHP 5.4 New Features course, profiling is discussed and examples are provided on how to write more efficient code. Take a look at the third movie in chapter one titled Using the High Precision Timer.

• Write closer to the CPU. Instead of writing a mobile web app, consider creating a native app using Objective-C, C#, or Java. Your application will run faster, and require fewer conversations across the Internet. For more guidance, consider checking out Objective-C Essential Training, C# Essential Training, and Java Essential Training.

• Write efficient HTML. Optimizing HTML pages not only improves the performance of your website, but will also reduce the number of hits on the server and the associated load. Look at Google Webmaster Tools, or check out Bill Weinman’s HTML5: Local Storage and Offline Applications in Depth to learn more about ways to store data locally, instead of on servers.

In closing, consider this: Programmers used to fret about available memory when 16 kilobytes of ram was a big deal, and they learned to be efficient. Over time, memory has become cheap and programs have become larger, but now we face an energy shortage. Why not start considering energy conservation to be the next big programming challenge?

Your thoughts?


Share this:Share on Facebook12Tweet about this on Twitter16Share on Google+0Pin on Pinterest0Share on LinkedIn8 - start learning today


8 Responses to “Green computing starts with your code”

  1. kj says:

    How much energy could’ve been saved had you not spent time plugging the three courses? Hahahahahaha! Thanks for starting off my day with a laugh!

  2. CCarlson says:

    Interesting article here — I used to work in a data center and I am well aware of the pure amount of energy required to manage and maintain data center operations aka “The Cloud”.

    Great write! If your code takes less for the server to process — the server load diminishes, electrical needs go down !

  3. Kevin says:

    So shouldn’t remove those energy gobbling videos from the Web? Maybe at least the flash versions?
    Even better, remove the credit card processing and make them free, all that communication over the net mus killing the planet.

  4. Joel Mielke says:

    We need to conserve in any way we can, everywhere in our lives. I suggest that people wash their hair in the shower while the water is still cold, since there is minimal discomfort in having cold water on one’s head. This saves water and energy. I suppose that the first commenter would suggest not showering at all, but

  5. luiz.rauber says:

    about the article, thinking about the content… it’s logical, minor is mayor, principal for the new market why it is open in IT

  6. Joe LeBlanc says:

    I definitely echo the call to profile your code, especially when comparing frameworks. Some coding frameworks come bundled with the philosophy that “hardware is cheap.” Unfortunately, this often translates to more CPU cycles for convenience functionality only used in development.

    Also, if you’re programming a web application, asset combination and minification is another thing to consider. If your framework of choice doesn’t already handle this, there are many stand alone tools to help you. Combining JavaScript and CSS files reduces the number of HTTP requests made, which ultimately saves energy.

Leave a Reply