Benchmark Description

Bytemark
Up-to-date source code.
Numeric sort
CC source
Java source
Generic integer performance. Should exercise non-sequential performance of cache (or memory if cache is less than 8K). Moves 32-bit longs at a time, so 16-bit processors will be at a disadvantage.

String sort
CC source
Java source
Tests memory-move performance. Should exercise non-sequential performance of cache, with added burden that moves are byte-wide and can occur on odd address boundaries. May tax the performance of cell-based processors that must perform additional shift operations to deal with bytes.

Bitfield
CC source
Java source
Exercises "bit twiddling" performance. Travels through memory in a somewhat sequential fashion; different from sorts in that data is merely altered in place. If properly compiled, takes into account 64-bit processors, which should see a boost.

Emulated F. P.
CC source
Java source
Past experience has shown this test to be a good measurement of overall performance.

Fourier
CC source
Java source
Good measure of transcendental and trigonometric performance of FPU. Little array activity, so this test should not be dependent of cache or memory architecture.

Assignment
CC source
Java source
The test moves through large integer arrays in both row-wise and column-wise fashion. Cache/memory with good sequential performance should see a boost (memory is altered in place -- no moving as in a sort operation). Processing is done in 32-bit chunks -- no advantage given to 64-bit processors.

Huffman
CC source
Java source
A combination of byte operations, bit twiddling, and overall integer manipulation. Should be a good general measurement.

Idea
CC source
Java source
Moves through data sequentally in 16-bit chunks. Should provide a good indication of raw speed.

Neural Net
CC source
Java source
Small-array floating-point test heavily dependent on the exponential function; less dependent on overall FPU performance. Small arrays, so cache/memory architecture should not come into play.

LU decomp.
CC source
Java source
A floating-point test that moves through arrays in both row-wise and column-wise fashion. Exercises only fundamental math operations (+, -, *, /).

If you ant to do the benchmarks yourself, you'll also need (some of) the following classes: BMglobals.java BmarkTest.java ClockTest.java EmFloatPnt.java InternalFPF.java RandNum.java huff_node.java jBYTEmark.java
Objects & Functions
Object type A
CC source
Java source
Allocates memory of a random size (0-5000 bytes).
Implemented in testclass .
Object type B
CC source
Java source
Creates 10*2500 objects at random position in an array (size:2500). In C++ the old object is explicitly deleted if this position is already occupied while in Java this is left to the garbage collection.
function
CC source
Java source
Calls non-virtual function func in testclass1
(calculates t=t+1).
virtual-function calls
CC source
Java source
Virtual function func in testclassr is overwritten by virtual function func in testclass2.