JamVM 1.3.1
JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book)
JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book). In comparison to most other VM's (free and commercial) it is extremely small, with a stripped executable on PowerPC of only ~130K, and Intel 100K.
However, unlike other small VMs (e.g. KVM) it is designed to support the full specification, and includes support for object finalisation, the Java Native Interface (JNI) and the Reflection API.
Here are some key features of "JamVM":
Uses native threading (posix threads). Full thread implementation including Thread.interrupt()
Object references are direct pointers (i.e. no handles)
Supports class loaders
Efficient thin locks for fast locking in uncontended cases (the majority of locking) without using spin-locking
Two word object header to minimise heap overhead (lock word and class pointer)
Execution engine supports basic switched interpreter and threaded interpreter, to minimise dispatch overhead (requires gcc value labels)
Stop-the-world mark and sweep garbage collector
Thread suspension uses signals to reduce suspend latency and improve performance (no suspension checks during normal execution)
Full object finalisation support within the garbage collector (with finaliser thread)
Garbage collector can run synchronously or asynchronously within its own thread
String constants within class files are stored in hash table to minimise class data overhead (string constants shared between all classes)
Supports JNI and dynamic loading for use with standard libraries
Uses its own lightweight native interface for internal native methods without overhead of JNI
JamVM is written in C, with a small amount of platform dependent assembler, and is easily portable to other architectures.
What's New in This Release:
Re-worked thread suspension enable/disable code
implemented a fast enable/disable suspend mechanism for critical code sections, which is now used in hash table access and heap allocation :
much faster object allocation
much faster primitive array allocation
faster string interning
removed some minor potential (as yet unseen) race conditions
Integrated all outstanding patches
generics branch patch, implementing VMClass.isEnum(), isAnnotation() and isSynthetic()
Boot library path patch (support for system property gnu.classpath.boot.library.path)
Enabled different min/max heap values for each architecture
ARM values are back to the defaults for JamVM 1.2.5. Default max heap of 128Mb is too large for typical embedded ARM systems.
Fixed the new compiler warnings from gcc-4.0 (under Mac OS X) related to char/signed char usage.
Fixed compiler error on gcc-4.0 under Mac OS X 10.4 (duplicate definitions of wait).
Fixed rare, potential dead-lock in direct.c when preparing methods
Fixed a bug in VMClassLoader.defineClass(), where offset or length is wrong.
Fixed bug in DCONST_1 on mixed-endian ARM architectures (this bug was fixed in JamVM 1.2.2 but it crept back in, due to the new interpreter in JamVM 1.2.5).
Improved thread dump (produced via SIGQUIT, or ctrl-).
Several other minor bug-fixes, and code tidy-ups.
tags
garbage collector boot library much faster allocation much library path enable disable the new max heap under mac hash table native interface object finalisation jni and
Download JamVM 1.3.1
http://prdownloads.sourceforge.net/jamvm/jamvm-1.3.1.tar.gz?use_mirror=citkit
http://prdownloads.sourceforge.net/jamvm/jamvm-1.3.1.tar.gz?use_mirror=switch
http://prdownloads.sourceforge.net/jamvm/jamvm-1.3.1.tar.gz?use_mirror=umn
Authors software
|
JamVM 1.3.1 (by Rob Lougher)
JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book)
|
Similar software
|
JamVM 1.3.1 (by Rob Lougher)
JamVM is a new Java Virtual Machine which conforms to the JVM specification version 2 (blue book)
|
|
More for C++ 1.0 (by Thorsten Goertz)
More for C++ is a class library that provides some features usually not common for C++
More for C++ includes a mark-sweep garbage
|
|
x10 0.3.2 (by Christian Grothoff)
X10 project is a new object-oriented, type-safe programming language for programming the next generation of high performance systems
|
Other software in this category
|
ScummVM 0.9.1 (by James Brown)
ScummVM project is a 'virtual machine' for several classic graphical point-and-click adventure games.
It is designed to
|
|
Funkee 0.9 (by Joshua Turner)
Funkee is a cross-platform scripting host built on top of the Java Virtual Machine and the Groovy scripting language
|
|
Tcl/Tk 8.5a5 (by Tcl Core Team)
Tcl provides a portable scripting environment for Unix, Windows, and Macintosh that supports string processing and pattern matching,
|
Featured Software
jEdit 4.3 pre8
jEdit is an Open Source text editor written in Java
Opera 9.02
Surf the Internet in a safer, faster, and easier way with Opera browser
GNU Aspell 0.60.4
GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell