DJM Questor Software

Host: Club Cruceros, La Paz, B.C.S., Mexico
Base: DJM Questor Software

MarinePlotter "Out of Memory" Problems

The Windows 32-bit OS supports up to 4-giga bytes of working memory. However, the operating system uses 2 giga bytes and leaves 2 gigabyte for each application program. The Windows 64-bit OS does not have this limitation, however, the MarinePlotter is currently a 32-bit program that runs in a 32-bit environment on the 64-bit machines; and as such, the program is limited to 2 giga bytes of working chart and program data.

The following discussion does not apply to ENCs because the drawing mechanism for ENCs is completely different than the mechanism the program uses to draw RNCs and Images.

Reference: Drawing sequence.

When you have loaded several charts and when possible, the program will draw the larger geographic area charts before it draws the smaller geographic area charts. This drawing sequence is to ensure that the smaller charts alway appear on top of the larger charts. Note that a small area chart can be a large bitmap. Conversely, large area chart can be a small bitmap. A large bitmap size can cause the "Out of memory" error. However, a large area cannot cause the out of memory error unless defined by a large bitmap. With this in mind, the program might at times load and draw a large area bitmap but not be able to load and draw a small area bitmap. This is because the large area bitmap memory size is smaller than the small area bitmap memory size. Confusing?

When the program fails to draw the large bitmap, it will likely fail to draw any smaller bitmaps. If the program fails to draw smaller bitmaps, it is usually because the program failed to free the unused memory of the failed large bitmap (and this is a known bug.)
---------------------------

SOLUTIONS: I have been evaluating possible solutions to the chart drawing "Out of memory" errors. Currently, the program draws RNCs as a series of scan lines. The method is slightly slower than other methods but has nearly eliminated the "Out of memory" drawing errors. If you load several RNC or Images, the program can still run out of available working memory.