| JamaicaVM 3.4 — User Documentation: The Virtual Machine for Realtime and Embedded Systems | ||
|---|---|---|
| Prev | Chapter 3. Jamaica Tool Chain Overview | Next |
In contrast to the jamaicavm command, the Jamaica builder command jamaica does not execute the Java application directly. Instead, the builder loads all the classes that are part of a Java application and packages them together with the Jamaica runtime system (Java interpreter, class loader, realtime garbage collector, JNI native interface, etc.) into a stand-alone executable. This stand-alone executable can then be executed on the target system without needing to load the classes from a file system as is done by the jamaicavm command, but can instead directly proceed executing the byte codes of the application's classes that were built into the stand-alone executable.
The builder has the opportunity to perform optimizations on the Java application before it is built into a stand-alone executable. These optimizations reduce the memory demand (smart linking, bytecode compaction, etc.) and increase its runtime performance (bytecode optimizations, profile-guided compilation, etc.). Also, the builder permits fine-grained control over the resources available to the application such as number of threads, heap size, stack sizes and enables the user to deactivate expensive functions such as dynamic heap enlargement or thread creation at runtime. A more detailed description of the builder is given in Chapter 6.