|
Part of the magic of our technology is
that our interpreters accomplish their high-speed by
directly interpreting the class file bytecodes. No "tricks"
are used such as hidden translation, preprocessed class
files, in-lined native methods, special method name
handling, etc. Our interpreters are completely compatible
with stock Java runtimes. No changes are required to
your Java runtime routines or to your Operating
System.
Here are some of the reasons why our
software interpreters are so fast they can rival JITs and
hardware accelerators in speed:
Proprietary
Algorithms
Bytecodes has developed
proprietary algorithms specifically targeted for superior
virtual machine execution. These unique algorithms permeate
the entire interpreter structure and give speed boosts
unavailable by any other means.
Execution in On-chip
Instruction Cache
Our interpreters are so
highly optimized that our code working set footprint is only
3K. This means that most of the time our interpreters are
executing, they are running entirely out of the
microprocessor on-chip cache! And since our interpreters
treat all Java bytecodes as data, we have the entire
processor data cache available to hold the small Java
bytecodes. This is eight times the cache coverage of JITed
native code.
Meticulous Microprocessor
Characterizing
We spend weeks designing
and running our own set of tests to figure out exactly how
each microprocessor pipeline works. By the end of this
exercise we know what only a few chip designers know about
actual execution times. This type of information cannot be
found in any manual. For example, one microprocessor we work
with offers a one clock reduction for loads and stores
occurring immediately at the end of an instruction cache
line. We optimized to take advantage of this situation -
something few people would know to do.
Fine-tuned IEEE Conformant
Floating-point
Our interpreters
completely in-line all floating-point arithmetic so calls
are never done to outside routines or operating system
emulation traps. Our floating-point code is so highly tuned
that we average 3.5 times faster floating-point performance
over compilers, JITs and other interpreters because they
have to call 'C' library routines.
Unique Virtual Machine
Interpreter Compilation System
Bytecodes, Inc. has
developed a powerful compilation system for virtual machine
interpreters that creates highly optimized code and multiple
variants. The compilation system accepts individual
configuration parameters controlling memory footprint size,
target processor cache attributes, frame variable residence
and much more. The generation of multiple interpreter
variants provides customers the unique ability to choose the
best fitting variant for their needs.
|