> Java Performance --- January 18, 2000 > Published by ITworld.com, the IT problem-solving network > http://www.itworld.com > > ************************************************************************ > TODAY: Improvements to Startup Time and Memory Footprint & Execution > by Reginald R. Hutcherson > > The following is a listing of changes in the next version of the > Java 2 SDK that promises to improve performance by reducing startup > time and decreasing the amount of memory used. > > * Swing Class Loading > In version 1.3, loading of some Swing classes is delayed until they > are actually needed by the runtime environment. In version 1.2, > Swing classes were loaded at startup regardless of whether the > classes were needed immediately. This change reduces startup time. > > * JAR File Memory Usage > The way JAR files are indexed in memory has been improved so that > the memory cost of loading a JAR file has been greatly reduced. The > class libraries in rt.jar, for example, occupied about 420 KB of > memory when loaded in version 1.2, but require only about 100 KB in > version 1.3. > > * JTable > In version 1.3, loading of international date and number formatting > code by JTable is deferred until the internationalization code is > needed by the runtime environment. In version 1.2, class JTable > loaded the internationalization code at startup, even if it was not > needed immediately. This change reduces startup time. > > * Size of DLLs Reduced > In version 1.3, the size of DLL libraries have been reduced in > terms of memory footprint (by about 280 KB) and download size (by > about 250 KB), with no detrimental effect on execution speed. > > * Remove Dependencies on Seldom-Used DLLs > In version 1.3, DLLs that handle dialog boxes and drag-and-drop > functionality are loaded only if they are actually needed. In > version 1.2, some of these libraries were loaded at startup > regardless of whether they would ever be used. > > * Reduce Memory Footprint Associated with Strings > In version 1.3 of the SDK, java.lang.String has been modified to > load the relatively small java.io.ObjectStreamField class for > handling serialization requirements. In 1.2, String loaded the much > larger java.io.ObjectStreamClass for this purpose. > > * Improvements to Program Execution Speed - > The following are some of the changes made to improve the program > execution speed and general runtime performance of the Java 2 SDK > and Java 2 Runtime Environment. > > * Improved Performance for readUTF and writeUTF > The implementations of the readUTF and writeUTF methods of > DataInputStream and DataInputStream have been modified to improve > performance. > > * Improved Performance of JScrollPane Painting > The implementation of JScrollPane has been improved so that it does > not cause excessive painting and screen flashing when > double-buffering is not used. > > * Improved JTable Performance > The performance of the JTable's column-handling functionality has > been improved. Previously, the performance of the operations of > adding columns or recalculating column widths did not scale well as > the number of columns became large. The Implementation has been > changed to improve scalability. > > * Paint Coalescing > Painting performance has been enhanced through the implementation > of an improved paint coalescing algorithm. Areas that require > repainting are coalesced into a single, non-rectangular repaint > area as they are posted to the event queue. This has the effect of > batching repaints, executing multiple repaints simultaneously in a > manner more efficient than in previous releases. > > * Frame Resizing > Resizing of top-level frames has been improved. > > * Internal Frame Blitting > By using Graphics.copyArea calls, Swing's DefaultDesktopManager now > needs to redraw far less when frames are dragged. > > * Performance enhancements in BigIntenger > Class java.math.BigInteger has been reimplemented in pure Java > programming-language code. Previously, BigInteger's implementation > was based on the Plumb C library. The new implementation performs > all standard operations much faster than did the old implementation > -- the speed-up realized in the new implementation could be as much > as 5x or more, depending on the operation. > > About the author > --------------- > Reggie Hutcherson is the Technology Evangelist for the Java 2 Platform > and HotSpot performance engine at Sun Microsystems. He has also > researched distributed systems and network protocols for the Stanford > Research Institute, and worked on the distributed database engine in > Sybase's Performance & Kernel Architecture group. He can be reached > at [EMAIL PROTECTED] > [ ]'s Cosmo [EMAIL PROTECTED] www.hackhour.com.br Hack Hour Inc. * Para n�o receber mais e-mails desta lista envie um e-mail para [[EMAIL PROTECTED]] e no corpo do email escreva [unsubscribe <seu-email>] ou acesse http://apoio.cits.br:8080/guest/RemoteListSummary/javabr Veja as mensagens antigas em http://www.mail-archive.com/javabr%40cits.br/
