Avian is a lightweight Java Virtual Machine (JVM) and class library designed to provide a useful subset of Java's features, suitable for building self-contained applications.
Avian is a lightweight Java Virtual Machine (JVM) and class library designed to provide a useful subset of Java's features, suitable for building self-contained applications.
The VM is implemented from scratch and designed to be efficient in size and performance, including features:
- Just-in-time (JIT) compilation for fast program execution;
- Generational, copying garbage collection to ensure short pause times and good spatial locality;
- Thread-local heaps providing O(1) memory allocation with no synchronization overhead;
- Null pointer dereferencing handled via operating system signals to avoid unnecessary branches;
- Proper tail calls and continuations;
In the design the class library is considered to be as much loosely-coupled as possible, allowing optimization tools to aggressively isolate the minimum code needed for an application; this could result in smaller size and faster downloads and application startup times. Linkage against the OpenJDK classpath is supported for applications that require a more comprehensive standard library.
The Avian JVM is designed to be embedded along with applications into a single OS executable file, which could run on systems natively and doesn't require Oracle JVM.