Software design linked to excess IT energy consumption

Software design linked to excess IT energy consumption

Summary: By addressing mobile apps and Website design, programmers and developers can aid in the drive for better energy efficiency.


Most green IT projects I hear about harp on inefficient hardware or infrastructure design as the biggest culprit when it comes to excess energy consumption. But in the past month, I've come across two different essays and research papers pointing to another big concern: the way software applications and Internet sites are designed.

The first paper, "Where is the energy spent inside my app?", focuses on the world of mobile applications for smartphones. According to the authors, there is a price to pay in power consumption when you choose a free app over the paid version. The paper considers popular apps, including Google Search, browsing a CNN page, Angry Birds, Free Chess, the New York Times and MapQuest.

The reason shouldn't really surprise you.

Free apps rely on advertising to keep them free. The paper I've referenced uses an energy profiler for smartphone apps called eprof to study the effective of design on apps for Android and Windows Mobile. One of the high-level findings is that 65 percent to 75 percent of the energy used for free apps goes toward running the advertisement modules. That's because the app must constantly call on the phone's communications modules to gather advertising information.

The paper's conclusion is that most of the apps developed so far have failed to take power draw into account; its suggests new ways that developers can help understand energy consumption in order to produce more efficient apps in the future.

The authors write:

"Our experience confirms with ample evidence that smartphone apps spend a major portion of energy in I/O components such as 3G, WiFi and GPS. This suggests that compared to desktop apps, optimizing the energy consumption of smartphone apps must have a new focus: the I/O energy. This is especially true since CPU energy optimization technologies techniques have been well studied and mature technologies like frequency scaling have already been incorporated in smartphones."

It is not lost on me that the paper I've referenced focuses on Android and Windows Mobile; that is likely because the data was gathered by Purdue University and Microsoft Research.

The second discussion about software design and energy consumption you might want to read is a series of posts by the Sustainable Virtual Design blog. The main focus of some recent posts is whether or not Web publishing versus online publishing is "greener."

There are two main conclusions that I draw from the recent posts on this topic:

  1. When it comes to site design, the longer it takes for sites to load up, the more energy will be expended. So, simplicity isn't just aesthetically pleasing, it helps ease power draw.
  2. If you want short bits of information, the Internet is super; if you are reading a lengthy essay, the printed form is probably more environmentally friendly overall.

The blog notes:

"The web is least sustainable in the “long form.” In other words, if we spend a long time accessing information on the web, its cost rises to match the same information put into physical form. So, a quick browse of news sites is generally green -- while reading a “long form” news source like The New Republic (just bought by Chris Hughes of Facebook cofounder fame) will be less green. In the latter case, you’re better off getting the printed magazine."

One of the blog posts makes the case for low-powered e-readers versus tablets for reading books. So, there may be another advantage to using your basic reader versus a power-hungry tablet other than the outdoor reading effect.

Again, the issue comes down to design and intent of purpose.

Both of these discussions are a reminder that IT teams might be spinning their wheels if green IT projects fail to explore and address application design as an energy-efficiency strategy.

Related stories:

Topics: CXO, Emerging Tech, Software, IT Employment

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Bah! My comment disappeared, again...

    Why does the first comment keep disappearing?
  • My personal bugbear...

    that I've been harking on about for years.

    Modern programmers have been brought up in a world of excess clock cycles and making code beautiful - indentation, function size, readability and maintainability.

    All good things and the last two are very important for long term support of code.

    But programming has moved further and further up the stack.

    When I learnt to program, we learnt machine code, then assembler, then high level languages. We learnt about processor construction, heaps and stacks, how to code economically and make the most out of the available memory and clock cycles - something very importand on a 1Mhz processor with 1024 bytes of memory, not so importan on a 3,000Mhz 4 core processor with 17,179,869,184 bytes of memory or more...

    I first saw the difference on an Amiga port of a C64 game. The C64 code was tightly written and pushed the hardware to the limit. The time delay, which was reduced as the difficulty increased, fit into around 5 bytes on the C64. On the Amiga version, those 5 bytes became thousands of lines of NOP (No Output) instructions and each level jumped later into that list of NOPs. Just because they could and because the code editor on the Amiga allowed easier copying and pasting.

    Move that forward to today and I've worked on web projects, where the PHP code and SQL database access was "elegant", but not optimized. When a PayPal newsletter came out and the shop appeared in it, the site would die under the load every 30 seconds or so. They had 4 load balanced front end servers going onto a single database server. They could cope with around 200 users and under load, the SQL to call up the front menu of the website could spike at nearly a minute! With the project manager sitting their restarting the MySQL processes.

    After analyzing the code and SQL statements, I rearranged some of the joins (no new indexes required) and optimizing the PHP code to test positives instead of negatives, where possible and a few other techniques. This didn't detract from the readability of the code, but it did boost the performance. Under load, the menu SQL call would execute in under 0.5 seconds and each front end server could handle several hundred users at the same time.

    It isn't rocket science, it isn't a black art, it is the basics of programming on a microprocessor and learning about the tools you are using.

    The restructuring of the JOINs could be found with a couple of quick google searches. But the developers didn't know how to optimize MySQL.

    The reflowing of the PHP code was based on knowing how the underlying machine code and memory management could be optimized and how to more effectively structure the code.

    The problem is, most programmers today start with PHP, C#, Java etc. and they don't know how a processor works and they don't know about memory boundaries etc. They use powerful machines, with only themselves accessing it, and they don't have to worry about optimizing performance, either for multiple users or for saving electricity.

    We need to take teaching programmers and developers back to the basics. We are moving from a period where users had overpowered machines all to themselves to low powered devices and multi-user servers. It is in these environments that learning optimization techniques is not only a benefit, but very much needed.
  • any numbers?

    Unless my local machine is processing heavy graphics, the CPU load is almost the same whether I am loading a page, or loading a word doc, or reading something. The only sizable difference will be in monitor power consumption which will obviously much higher than in a reader's.
    Web servers's power consumtion probably mostly correlates with the number of requests, and page sizes.
    Just using a more efficient power unit in any computer will probably trump any savings from jumping between browsing and e-reading.

    Piling it all up into on big green heap is laughable at best.
    • Article is looking more at smartphones, though

      Which makes a lot of sense, since you're talking about working off of limited battery life. More power used for smartphone apps = more time spent plugged into a recharger = more "non-green" energy usage to keep it recharged.

      By the same token, though, any developer that doesn't take the time to optimize their code, or even worse says, "Hey, the horsepower's there, the end user can just deal with it," is displaying a super-cavalier attitude, not merely from a "green" perspective but from a user satisfaction perspective. After all, isn't that the biggest complaint we hear about the various operating systems & apps, that they suffer from 'code bloat"? By running faster, optimized code can use less CPU cycles, which means more processing capability available for other apps as well as less power used, and will use less space on the hard drive. Sure, we have multi-gigabyte & terabyte drives now, but a few megabytes here, a few megabytes there... soon you're talking about [b]real[/b] storage issues.
  • ecommerce reviews

    Nice post!I really love reading articles that have lots of knowledge to impart.
    As i know that in the object oriented programming, without the object ,we don't do anything.So to setup a behavior of the object is most important i.e how and when it works on a particular system.I admire those writers who share the best of their knowledge in writing such articles. Keep up the good work and continue inspiring readers.
    <a href="">ecommerce reviews</a>
    Thanks for sharing the information.
    ecommerece reviews