next up previous
Next: GUI energy characterization Up: Methodology and benchmarks Previous: Normalized energy

Benchmarks

We designed the benchmarks to characterize different aspects of GUI platforms including event handling, typical window operations, and window properties. Also, we characterized common window types and their related usage. Different input methods were also characterized. The benchmarks are described in Table III. Unless otherwise indicated, they were coded for all three GUI platforms. The coding and compilation information is given in Table IV. The source code for benchmarks used in this work can be downloaded from [25]. Most benchmarks were coded using a similar scheme in which a timer is set to start some processing. In a target, the processing triggers the event we wish to characterize; in the corresponding context, the processing is the same except that the event is not triggered. A snapshot of the ``Event loop" benchmark target for Windows is shown in Figure 4 to illustrate such a scheme. Note that its context uses the same code except that line $ 13$ is commented out.

Table III: Benchmarks
Benchmark Description
Event handling
Event loop Send and get an event
System event Use stylus to tap a window which is programmed to ignore that event
Basic window operations
Create window Create and then destroy a window
Show window Show and then hide a full size window
Using windows of different types
Menu Show and then hide a menu window of four items
Message box Show a dialog box with "OK" and accept user confirmation
Scroll bar Move a scroll bar of half screen height with various speeds
Tabbed panel Switch between two full screen tabbed panels (iPAQ1 and Zaurus only)
Window properties (iPAQ1 only)
Size Show and then hide menu windows of different numbers of items, normal windows of different sizes (60$ \times$80, 90$ \times$120, 120$ \times$160, 180$ \times$240, and 240$ \times$320 pixels, respectively), text windows of different text sizes
Colors Present a full screen window of different colors
Color sequence Show and then hide full screen windows of different colors on a black background
Color patterns Present full screen windows of black and white checkerboard patterns with different block sizes
Different user input methods
Virtual keyboard Push "x" on the virtual keyboard
Hardware button Trigger the right cursor key button
Stylus tap Same as System event
Stylus move Move stylus vertically along the screen for half screen height on a window which is programmed to ignore corresponding events


Table IV: Coding and compilation information for benchmarks
Qt Windows X/GTK
Coding language C++ C C
IDE N/A eMbedded Visual C++ 3.0 N/A
Compilation setting gcc -O2 Default gcc -O2

Figure 4: Outline of the target for benchmark ``Event loop". The context uses the same code but with line $ 13$ commented out.
\begin{figure}
\centering\epsfig{file=example-code.eps,width=3.8in}
\end{figure}
Routines to turn the LCD off and on were inserted at the beginning and end of the benchmarks to obtain the additional energy due to the LCD.
next up previous
Next: GUI energy characterization Up: Methodology and benchmarks Previous: Normalized energy
Lin Zhong 2003-10-13