Image processing is generally a computationally expensive operation, and the usability of JAVA for educational purposes requires that students do not face unreasonable delays in the operator demonstrations. Further, performance in the demonstrations should be comparable to actual implementations of the operators so as to give students an understanding of the rate of performace as well as the capabilities of the operators.
This section makes a brief comparison of the time it takes for the JAVA applets to perform a particular image processing operation compared to the equivalent Visilog operation. Visilog[16] is a standard C-based commercial image processing package intended for educational use. Visilog's operators are not strictly equivalent as the underlying algorithms can differ (and Visilog timings also include overheads associated with data-structure management and screen displays) but nevertheless should help provide a feel for the difference in performance. Our study showed that interpreted JAVA is about five to ten times slower than C, but, when compiled JAVA is comparable.
The machine on which the interpreted JAVA (and Visilog) tests were run
was a lightly loaded Sparc 4 (110MHz).
The timing was performed using one of JAVA's built in functions for
retrieving the current time in milliseconds. We used Visilog's
built-in timer (also in milliseconds). The applets were being
individually run through the appletviewer program and all the
images used were 256x256 greyscale images.
The machine on which compiled JAVA was tested on was an Intel Pentium
running at 133MHz. The web-browser was Netscape version 3, running
under MS-Windows 95, which includes a JIT
compiler for JAVA.
One should bear in mind that running compiled JAVA on a different
machine than the one Visilog was tested on is liable to create surprising
results. A P133 processor is approximately 1.8
times faster than the Sparc 4 processor, when comparing pure processing
power in terms of floating point and integer operations (see Table
1
).
There are many other factors, however, which cannot be accounted for such as memory speed, caching strategy, etc.