The process of bringing an EXE file into RAM (Random Access Memory),
and processing the header relocation information to prepare it for execution.
Similarly, loading refers to bringing class files into RAM
and preparing them for execution. The JVM (Java Virtual Machine)
in particular is slow to load for several reasons:
It is a fair size exe file to start. Typically, it is implemented as a
DLL (Dynamic Link Library) which saves most of the EXE reloading time.
Before it can do anything useful, it has to load hundreds of standard class
A fresh copy of the JVM is loaded every time you start an application, and a
fresh copy of the standard class files are loaded.
The browser does not load the JVM
until it hits the first Java-enabled web page.
To avoid the delay of loading the JVM
for each application you could:
Use gespenstering to capture
the state of the system just after all classes have been loaded and freeze that in
an EXE file so the JVM comes up ready to go. This may be a hand-crafted
gespenster for the JVM + selected standard class files, or a general tool
to create rapid-load stand-alone EXE files for ordinary applications.
It should also be possible to share a JVM
between several applications without them interfering.
It shoud be possible to reuse a JVM
without creating a totally new copy from scratch.
To speed the loading of the browser JVM,
Share the permanently resident app JVM.
Start the load in the background during slack moments, before the first Java