by Richard Winterton
Intel has a new release of the Google Desktop Sidebar Performance Power Monitor Gadget v2.0. Based on feedback from users who have downloaded and used previous versions of gadget software we have updated the gadget to include the monitoring of memory to the list. The gadget now looks like the screenshots below, adding the total percent memory bar to the sidebar graph as well as the gadget slideout view.
Many people have asked for tips on creating applications that are memory constrained. Since this is a big issue for many mobile devices, including Intel Mobile Internet Devices, I have written a paper with a few suggestions on designing an application with memory constraints, Keeping Memory In Mind.
To help developers create mobilized applications with features similar to the Google Desktop Gadget software; we are providing the sample code for platform discovery.
Download the Gadget Software
A loose analogy of Newton's third law of motion can sum up the relationship between mobility and performance. When an object is being acted on by one force an equal and opposite, force is applied to the object. Although not directly related to each other mobility has a significant impact on performance, just as performance has on mobility. One of the key features of being mobile is not being tied to an electrical power outlet. The longer a battery provides power to a device the more mobile you are. However, being mobile is not beneficial if you cannot do what you want or need to do. Typically the more work done, the more power used. This is the principle behind Intel Speedstep® Technology. This paper describes how Intel Speedstep® Technology saves power and the new features added to the Intel Performance Power, Google Sidebar Gadget shows how and when power is being saved as well as the amount of memory being used by the system.
Battery and Performance
The Google Desktop Performance Power Monitor Gadget monitors CPU utilization, CPU Frequency, percent memory, battery charge rate, battery drain rate, percent capacity of the battery as well as the time remaining on the battery (when it is plugged in and when it is not). The new feature added to the gadget is the monitoring of memory.
The Mem bar indicates the total percent memory as a ratio of the number of bytes committed or in use by the system divided by the total amount of physical memory that is available to the system. Why is this important? A lot of us put the laptop to sleep when we are finished using them instead of shutting down the laptop. There are times when you start up and shutdown the system does not seem to shutdown as fast or start up as fast. One possibility is that the system needs more memory than that is available.
Most laptops operate fairly well with a percentage that is under 50 percent memory usage. When you start up the system and you see that the memory usage is over 50 percent, that is a good indication that some application may have allocated memory and may not have had a chance to free up the memory prior to starting up again. Without having details of the specific application you may not be able to solve the issue so on an as needed basis, typically around 50 percent memory usage, it would suit the user well to either close down specific application and restart it or reboot the system. This allows the memory to be reallocated to the applications you need the most and provide as much physical memory as needed to the operating system as possible.
EXAMPLE OF PERFORMANCE POWER MONITOR DETAILS:
Intel Speedstep® Technology
When the CPU does not require a lot of performance, such as document writing, or browsing an Internet page that contains only HTML, the frequency the CPU is operating at is decreased. However when you are loading the document or browsing the internet with "active" components, higher CPU performance is required and the CPU operating frequency is increased. This is the basic approach that speed step takes. The new Intel Performance Power Gadget shows the current CPU operating frequency. Why should you care what the CPU frequency is? Shouldn't that be "just taken care of" by the hardware and operating system? Typically, the answer to that question is yes but let me give you a couple of examples why you should care. Before I give the examples, you should understand the ideas behind the power options provided by most operating systems such as Vista and Windows XP. Under most operating systems, power schemes or settings provide options that maximize the battery or maximize the performance of the machine and several combinations of the two extremes.
Say you are working on a paper in a word processor. Most of the time you spend is in writing the paper and not formatting the document, running spell check or managing the graphics within the document. Since the majority of the time spent, writing a paper is reading, writing and revising the document, the CPU is not required to do a significant amount of work. On an Intel Pentium M 1.86 GHz processor writing this paper the CPU utilization dedicated to word processing ranges from 2 to 12 percent depending on when the auto-save function is run and the background spell-check kicks in. However, on average, the CPU utilization dedicated to word processing is about 2 percent. As an example of just how much battery life may or may not be saved between the two extremes, maximizing performance versus maximizing battery, two screen captures were taken from the same machine 30 seconds apart. One with the setting designated as maximizing performance and the other designated as maximizing battery. The first figure shows the maximizing of performance
First notice that the Intel Performance Power Monitor shows an estimated time of 3 hours and 42 minutes of battery time remaining. Second, notice the discharge rate of -16 Watts. Now finally notice the CPU is running at a frequency of 1.85 GHz and a utilization of 1.04 %.
Now let's compare it just seconds later after switching to the maximize battery scheme. First notice the estimated time of 4 hours and 1 minute, up from the estimated 3 hours and 42 minutes only seconds earlier. This results in a gain of about 19 minutes from just moments earlier. This gain is even more significant if the CPU utilization is higher. Notice that the discharge rate of -16 Watts decreased to -15 Watts. The CPU frequency is now calculated at 800 MHz as opposed to 1.85 GHz in the maximize performance scheme. Notice that when the frequency of the CPU was decreased the CPU utilization doing the same workload was increased somewhat, because the frequency of the CPU was decreased.
The reason the new Intel Performance Power Monitor gadget added a bar graph of the current frequency to the display is to help people understand what Intel Speedstep® Technology does and how to make better use of the operating system schemes to fit the needs of the user.
If you have other suggestions or questions on how to write mobile devices or how to write applications on memory-constrained devices, your comments are very much appreciated.
The source code for the platform discovery features found in this Google Gadget is available as a code sample download. This C++ source code and COM object lets you reproduce the battery, disk, processor and connectivity functionality in your own code. An alternative approach is to adopt the more fully fledged Intel Mobile Platform SDK, an open source project that also provides a pluggable extensibility framework around these features.
About the Author
Richard Winterton graduated from Brigham Young University in 1986 with a BS degree in Electrical Engineering and a minor in mathematics. While at Lockheed Martin from 1986-1994, he designed two network ASIC chips and authored 2 network communication protocols that later become SAE and DOD network protocol standards. Richard was a member of a team that wrote an operating system for the U.S. Navy's A-12 Avenger, advanced attack aircraft, wrote the "BIOS" software for the main avionic computer for the F-16 Fighting Falcon and wrote part of the F-16 operating system. Richard attended the University of Texas at Arlington's graduate school, working on a master's degree in Electrical Engineering. In 1994 Richard went to work for Intel Corporation where his first assignment was a senior software engineer developing Intel's LANDesk Management products. Richard’s current position at Intel is an application engineer responsible for software optimization, and enabling engineer, optimizing and enabling applications for Intel's latest and next generation products.