Improvements to Startup Time
The following are some of the changes and have helped to reduce startup time and decrease the amount of memory used by the JavaTM 2 SDK and Java 2 Runtime Environment.
- 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 Rection - 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 intenationalization 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. This change reduces startup time.
- 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.
- The size of internal VM datastructures used by the client virtual machine have been reduced.