Practical
Embedded Java

BenchMarks


A practical engineering approach to using embedded Java in real-world applications.


Buy It

This book is a work in progress...



BenchMark 1.0f 2003 Feb 19
Here are the BenchMark.java build.xml prever.bat files.
For more technical details on these modules, see this feature comparison table.
Comments and Disclaimer: Please read the notes below the results. This is just the first in many planned benchmarks. No I/O tests are shown here, for example. The BenchMark test code is probably highly imperfect and could be improved. (Send us your suggestions!) These tests are probably a good representation of what real world code is like. For example, it does no good to claim a math operation in "XX time" if you don't also allow the time to fetch operands and store the results. This code is intended to be generic, it is not optimized for any specific hardware. Comments on the source code are welcome - this is a work in progress. Stay tuned for much more.

All values are operations per second, so higher numbers are better(faster)
module processor chip
product model
avail code memory
processor clock
firmware version
Java version
Dallas TINI390
DSTINI
512K
36.864 MHz
1.02e
JDK1.1.8
Dallas TINI390
DSTINI
1024K
36.864 MHz
1.11
JDK1.1.8
Dallas TINI400
TStik.72.nb
1024K
29.491 MHz
1.11
JDK1.1.8
Imsys Cjip
SNAP
8096K
80 MHz
0.7.1
J2ME/CLDC
aJile aJ80
JStamp
512K
73 MHz
3.16.07
J2ME/CLDC
aJile aJ100
JStik LP2/4
4096K
103 MHz
3.16.07
J2ME/CLDC
262144 byte array access
32768 elements
3532
3703
4088
117500
188864
826952
131072 int array access
16383 elements (note1)
3453
3542
3915
115992
233224
992969
int add
11668
12239
14031
99304
641025
2941176
int sub
11641
12210
13984
99304
641025
2857142
int mul
4297
8298
8354
96061
478468
1388888
int div
766
3099
2655
64516
621118
1587301
float add
1748
2559
2149
165837
735294
2272727
float sub
1599
2248
1871
157480
847457
2702702
float mul
864
1854
1528
142247
826446
1666666
float div
246
254
201
82712
561797
1351351
double add
2152
3288
3104
106723
595238
1470588
double sub
1972
2886
2657
102986
813008
1639344
double mul
912
2004
2657
68166
377358
621118
double div
252
259
207
35676
311526
571428
string concat
47
46
46
251
879
3779
string compare
1577
1356
1396
5417
64935
270270
method calls
5224
6157
5594
14929
271739
909090
object creations
577
550
482
3680
17331
71942
Total Loop Executions (TLE)
412
495
437
10235
36675
112384
Price @10
$50
$67
$85?
$130?
$99
$299
TLEs per $ (higher is better) Note4
8.240
7.388
5.141
78.73
370.50
375.9
Website
Notes (see the source code for all the details of each test)
1-TINI arrays can be a max of 64 KBytes in size, so for ints this is a limit of ((2**16)/4) - 1 elements, so I limited all the test arrays to this size.
2- When applications are deployed, TINI executes from NVRAM, SNAP from PSRAM, JStamp, JStik, and SaJe from Flash.
3- Our test setup is still under development, so these results may change in future revisions. Your mileage may vary. Take any benchmark with a grain of salt, two aspirin, or a pint of carbonated malt beverage, as appropriate. No animals were harmed in these tests.
4- TLEs per $ is an almost completely arbitrary attempt to assign some "relative score" to each system. Take this with a grain of salt. Adding more memory to a system increases its price and therefore lowers its score (since the speed did not increase) but its value probably is actually higher since it can run larger programs and/or store more data. Another example: JStik's score is about the same as JStamp, but JStik has much more memory, ethernet, high speed I/O interface, etc.

 
Systronix® 939 Edison St, Salt Lake City, Utah, USA 84111
Tel +1-801-534-1017, Fax +1-801-534-1019
contact us     Time Zone: MDT (UTC-6)
 

Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Systronix is independent of Sun Microsystems, Inc.
TStik, JStik, JCX, JStamp, JSimm, JDroid, and JRealTime are trademarks of Systronix, Inc.
1-Wire, iButton and TINI are trademarks of Dallas Semiconductor
Simmstick is a trademark of Dontronics
LEGO® is a trademark of Lego A/S, Denmark