How We Do It

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 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.


© 1998-2014 BYTECODES