Industry-Standard Benchmarks for Embedded Systems
EEMBC, an industry alliance, develops benchmarks to help system designers select the optimal processors and understand the performance and energy characteristics of their systems. EEMBC has benchmark suites targeting cloud and big data, mobile devices (for phones and tablets), networking, ultra-low power microcontrollers, the Internet of Things (IoT), digital media, automotive, and other application areas. EEMBC also has benchmarks for general-purpose performance analysis including CoreMark, MultiBench (multicore), and FPMark (floating-point).


GrinderBench FAQ

Grinderbench is no longer supported. It has been replaced by AndEBench for Android.


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


Data Sheets

White Paper