Palm Globe, version 1.10 13 Nov 1998
[previous | contents | next]

Performance considerations

Palm Globe is designed as a '32-bit' application, with heavy use of long (32-bit) integers. All computation is done using long integers, so no floating-point overhead is incurred.

The relatively long draw times are due to the number of calculations needed; for each pixel that is part of the globe, the program must determine the corresponding latitude and longitude, whether that point is land or water, and how brightly it is lit (which depends on the angle of the surface of the globe at that point, relative to the sun's current position). Finally, an enhanced error diffusion algorithm is used to simulate a range of tones on the image.

In general, therefore, the simpler the image presented the faster it is drawn. Selecting Sunlight, Starlight, or 3-D all slow down the drawing. Similarly, non-equatorial (tilted) views take significantly longer to draw than equatorial views (hence the Snap to equator choice).

As a rough guide, the simplest (flat lighting, equatorial view, no sunlight) image at the smaller size should take about 7 seconds to draw on a PalmPilot (16MHz processor). The time taken is inversely proportional to the speed of the processor and proportional to the square of the image diameter. The most complicated drawing (3-D shading, non-equatorial view, sunlight, and full screen) might take two or three times longer.

When you switch to Palm Globe from another application, the last-shown image is displayed first; this takes much less time.

Acknowledgement: I would especially like to thank John Marshall for his assistance in reducing the cost of divisions during pixel computations, which resulted in a 30% performance improvement.


[previous | contents | next]
Copyright (c) IBM Corporation, 1998. All rights reserved. ©
Author: Mike Cowlishaw, mfc@speleotrove.com