Benchmarking embedded Java

Discussion in 'Java' started by Martin Schoeberl, Sep 24, 2004.

  1. As I'm working an a Java processor I'm interested to benchmark embedded
    Java systems. However, the usual SPECJvm98 is far too large for many
    embedded system.
    After searching around on the net to find embeddded benchmarks in Java
    I've decided to write a new benchmark suit.

    It contains several micro-benchmarks to evaluate CPI for single bytecodes
    or short sequences of bytecodes, one synthetic benchmark (the Sieve of
    Eratosthenes) and two application benchmarks.

    To provide a realistic workload for embedded systems a real-time
    application was adapted to create the first application benchmark (Kfl).
    The application is from one node of a distributed motor control system. A
    simulation of the environment (sensors and actors) and the communication
    system (commands from the master station) forms part of the benchmark for
    simulating the real-world workload.

    The second application benchmark is an adaption of a tiny TCP/IP stack
    (Ejip) for embedded Java. The benchmark contains two UDP server/clients
    exchanging messages via a loopback device.

    There is a great variation in processing power on different embedded
    systems. To handle these variation all benchmarks are `self adjusting'.
    Each benchmarks consists of an aspect that is benchmarked in a loop and
    an `overhead' loop that contains any overhead from the benchmark that
    should be subtracted from the result (this feature is for the micro
    benchmarks). The loop count adapts until the benchmark runs for more than
    a second. The number of iterations per second is calculated which means
    that higher values indicate better performance.

    The benchmark framework needs only two system functions: One to measure
    time in millisecond resolution and one to print the results. These
    functions are encapsulated in LowLevel.java and can be adapted to
    environments where the full Java library is not available. For example,
    the leJOS system has very limited output capabilities and and a special
    LowLevel.java exists in the lejos subdirectory. The benchmark is
    straight-forward to use. To compile and run all benchmarks on a standard
    JVM simple type:

    javac jbe/DoAll.java
    java jbe.DoAll

    I've put the results of JOP, leJOS, JStamp (aJ80), EJC and, for a
    reference only, different JVM versions (Suns JVM and gcj) running on a
    Pentium MMX 266 at my website:

    http://www.jopdesign.com/perf.jsp

    If someone has access to other embedded Java solutions it would be nice
    to add benchmark results to the table. You can find the source of the
    embedded benchmark at the website above.

    I would be especially interested in following platforms: the aJ100, TINI,
    Cjip, Lightfood in an FPGA, Moon and the PSC1000 (now called Ignite).

    Martin
    ----------------------------------------------
    JOP - a Java Processor core for FPGAs:
    http://www.jopdesign.com/
    Martin Schoeberl, Sep 24, 2004
    #1
    1. Advertising

  2. Thank's to Tim Simpson results for a TINI at 40MHz is added to the list.

    Martin
    --
    ----------------------------------------------
    JOP - a Java Processor core for FPGAs:
    http://www.jopdesign.com/

    "Martin Schoeberl" <> schrieb im Newsbeitrag
    news:bpT4d.308165$...
    > As I'm working an a Java processor I'm interested to benchmark embedded
    > Java systems. However, the usual SPECJvm98 is far too large for many
    > embedded system.
    > After searching around on the net to find embeddded benchmarks in Java
    > I've decided to write a new benchmark suit.
    >
    > It contains several micro-benchmarks to evaluate CPI for single

    bytecodes
    > or short sequences of bytecodes, one synthetic benchmark (the Sieve of
    > Eratosthenes) and two application benchmarks.
    >
    > To provide a realistic workload for embedded systems a real-time
    > application was adapted to create the first application benchmark

    (Kfl).
    > The application is from one node of a distributed motor control system.

    A
    > simulation of the environment (sensors and actors) and the

    communication
    > system (commands from the master station) forms part of the benchmark

    for
    > simulating the real-world workload.
    >
    > The second application benchmark is an adaption of a tiny TCP/IP stack
    > (Ejip) for embedded Java. The benchmark contains two UDP server/clients
    > exchanging messages via a loopback device.
    >
    > There is a great variation in processing power on different embedded
    > systems. To handle these variation all benchmarks are `self adjusting'.
    > Each benchmarks consists of an aspect that is benchmarked in a loop and
    > an `overhead' loop that contains any overhead from the benchmark that
    > should be subtracted from the result (this feature is for the micro
    > benchmarks). The loop count adapts until the benchmark runs for more

    than
    > a second. The number of iterations per second is calculated which means
    > that higher values indicate better performance.
    >
    > The benchmark framework needs only two system functions: One to measure
    > time in millisecond resolution and one to print the results. These
    > functions are encapsulated in LowLevel.java and can be adapted to
    > environments where the full Java library is not available. For example,
    > the leJOS system has very limited output capabilities and and a special
    > LowLevel.java exists in the lejos subdirectory. The benchmark is
    > straight-forward to use. To compile and run all benchmarks on a

    standard
    > JVM simple type:
    >
    > javac jbe/DoAll.java
    > java jbe.DoAll
    >
    > I've put the results of JOP, leJOS, JStamp (aJ80), EJC and, for a
    > reference only, different JVM versions (Suns JVM and gcj) running on a
    > Pentium MMX 266 at my website:
    >
    > http://www.jopdesign.com/perf.jsp
    >
    > If someone has access to other embedded Java solutions it would be nice
    > to add benchmark results to the table. You can find the source of the
    > embedded benchmark at the website above.
    >
    > I would be especially interested in following platforms: the aJ100,

    TINI,
    > Cjip, Lightfood in an FPGA, Moon and the PSC1000 (now called Ignite).
    >
    > Martin
    > ----------------------------------------------
    > JOP - a Java Processor core for FPGAs:
    > http://www.jopdesign.com/
    >
    >
    >
    Martin Schoeberl, Sep 25, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Andy Dingley
    Replies:
    3
    Views:
    874
    Andy Dingley
    Feb 11, 2004
  2. Jerry Coffin

    Benchmarking

    Jerry Coffin, Jun 20, 2004, in forum: C++
    Replies:
    0
    Views:
    379
    Jerry Coffin
    Jun 20, 2004
  3. Jerry Coffin

    Benchmarking, part 2

    Jerry Coffin, Jun 21, 2004, in forum: C++
    Replies:
    8
    Views:
    395
    David Harmon
    Jun 26, 2004
  4. Carlo Razzeto

    Benchmarking

    Carlo Razzeto, Nov 19, 2004, in forum: C++
    Replies:
    1
    Views:
    410
    Victor Bazarov
    Nov 19, 2004
  5. Philipp Klaus Krause

    Benchmarking C compilers for embedded systems

    Philipp Klaus Krause, Sep 19, 2011, in forum: C Programming
    Replies:
    8
    Views:
    958
    Walter Banks
    Sep 30, 2011
Loading...

Share This Page