Developed by EEMBC, the Embedded Microprocessor
Benchmark Consortium, GrinderBench Version 1.0 is a suite of benchmarks
that allows the user to approximate the performance of Java 2 Micro
Edition (J2ME™) applications in products such as mobile phones
and PDAs. Its five benchmark kernels are the following:
||A complete chess
playing engine that is used to determine a set of chess moves.
The chess benchmark only performs the logical parts of a chess
program, as no graphical output is available. It plays a preset
number of games with itself and times how long it take.
||This suite of algorithms
measures the performance of Java implementations in cryptographic
transactions, such as those used when goods and services are
paid for via a mobile device. The DES, DESede, IDEA, Blowfish,
and Twofish encryption algorithms are exercised.
|| Measures XML parsing
and/or DOM tree manipulation.
||Exercises a Java
implementation’s ability to perform its user interface
while interacting with the internet, particularly in scenarios
where applications are divided into separate application threads
with some communications threads running in the background behind
the thread providing the user interface.
||Shows how fast a
Java implementation can decodes a PNG photo image of a typical
size used on a mobile phone.
EEMBC’s GrinderBench Version 1.0 is
designed to benchmark CLDC and CDC applications only. This supports a focus
on J2ME and its application to the mobile phone market. The Connection
Limited Device Profile (CLDC) has no knowledge of external peripherals,
such as graphics displays or networking ports, and as such provides an
excellent vehicle on which to isolate the Java implementation from the
latency introduced by I/O peripherals.
Questions and Answers about GrinderBench™ Mobile Java Benchmark Software
Why did EEMBC develop the GrinderBench mobile Java benchmarks?
There is an urgent need in the embedded industry for fair, honest, certifiable benchmarks that provide customers with accurate indications of the performance of Java embedded solutions and thus a way to make an informed choice among the many alternatives available.
Who developed the GrinderBench mobile Java benchmarks?
The benchmarks were developed by EEMBC, the Embedded Microprocessor Benchmark Consortium, a non-profit organization that helps designers select the right processors and compilers for their systems by developing certifiable performance benchmarks based on real-world embedded applications. EEMBC’s members include most of the world’s leading semiconductor, intellectual property, and compiler companies; users can access the EEMBC benchmark software by purchasing a license or by becoming a member of the EEMBC Board of Directors or one or more EEMBC subcommittees.
What part of J2ME does GrinderBench test?
GrinderBench 1.0 focuses on the Connected Limited Device Configuration (CLDC), which is the set of classes that underlies all other J2ME profiles (including MIDP), and on VMs executing standard Java class files.
How did EEMBC decide which benchmark kernels would be included in GrinderBench?
GrinderBench was designed to be both relevant and representative. The EEMBC Java benchmarking team wanted a benchmark suite that:
• Included code that is representative of real-world CLDC applications
• Avoided synthetic benchmarks to the extent possible
• Exercised the Java API broadly
• Was resistant to manipulation
How can Java performance on mobile phones be measured using GrinderBench benchmarks?
Most Java-enabled phones are equipped with the MIDP J2ME environment and can only accept Java code packaged as MIDlets. To accommodate this testing modality, EEMBC has created two versions of GrinderBench. The mobile phone scores on www.grinderbench.com are obtained using a version of GrinderBench supported by a MIDP wrapper. A second version of GrinderBench, without the MIDP wrapper, can be used on TCK-compliant platforms other than mobile phones and is available for license from EEMBC. Both versions test only the CLDC API and not the MIDP API.
How is accurate timing ensured?
The benchmark components time themselves using the milliseconds-accurate timer provided by CLDC. The amount of time spent running each of the GrinderBench tests thus dwarf any inaccuracy in the Java-based timers. To prevent GrinderBench benchmarks from running to completion in a few seconds on some machines and taking geologic times on others, a mechanism is used in which the benchmark executes for a fixed amount of time and measures its progress during that time.
Can GrinderBench run on devices with a limited amount of memory?
Yes. Since many mobile phones do not permit Java Archive (JAR) files to be more than 64 Kbytes in size, GrinderBench is structured so that the individual components can be downloaded (not just the entire multi-test benchmark). Also, the individual JAR sizes for these components is limited to 64 Kbytes or less.