Benchmark Benchmarks in nanoseconds (10-9 s) per operation using Sun Microsystems Inc.'s virtual machine version 1.1.8 on a Win98 AMD K6-2 350MHz, 16MB heap memory
valueOf(int) intValue()Iteration count 200000 20000000
java.math.BigDecimal (symcjit) 10750 571
be.arci.math.BigDecimal (symcjit) 5250 225
com.ibm.math.BigDecimal (symcjit) 8250 23400
com.tce.math.TBigDecimal (symcjit) 8000 360
valueOf(long) longValue()Iteration count 200000 20000000
java.math.BigDecimal (symcjit) 10150
1236
be.arci.math.BigDecimal (symcjit) 5450
280
com.ibm.math.BigDecimal (symcjit) 12300
30485
com.tce.math.TBigDecimal (symcjit) 10200
960
new BigDecimal(double) doubleValue()Iteration count 10000 10000
java.math.BigDecimal (symcjit) 115000
214000
be.arci.math.BigDecimal (symcjit) 110000
44000
com.ibm.math.BigDecimal (symcjit) 318000
50000
com.tce.math.TBigDecimal (symcjit) 126000
44000
new BigDecimal(String)
Avg. Precision 8 18 44 76 141 269 525
Iteration count 333320 250000 166660 125000 90900 62500 45440
java.math.BigDecimal (symcjit) 16140 19080 233649 341840 560066 1129120 2749779
be.arci.math.BigDecimal (symcjit) 8400 9880 13200 17520 24752 38720 68882
com.ibm.math.BigDecimal (symcjit) 8730 10760 14820 20160 28382 47520 84727
com.tce.math.TBigDecimal (symcjit) 11080 13200 21420 28560 44114 72800 132922
toString
Avg. Precision 8 18 44 76 141 269 525
Iteration count 192000 128000 32000 32000 32000 32000 32000
java.math.BigDecimal (symcjit) 37760 71250 168125 278125 528750 1144687 2870000
be.arci.math.BigDecimal (symcjit) 7447 9453 12187 18750 25625 41250 73750
com.ibm.math.BigDecimal (symcjit) 7447 8984 15312 22187 29375 46562 84062
com.tce.math.TBigDecimal (symcjit) 22604 31328 12187 17187 24062 37812 66875
add
Avg. Precision 8 18 44 76 141 269 525
Iteration count 240000 160000 40000 40000 40000 40000 40000
java.math.BigDecimal (symcjit) 18291 19875 77000 81000 87750 108500 188000
be.arci.math.BigDecimal (symcjit) 5958 7187 7000 9750 12250 18000 31500
com.ibm.math.BigDecimal (symcjit) 6625 8562 12250 23500 30000 52250 109750
com.tce.math.TBigDecimal (symcjit) 8458 8187 18000 20750 28750 45250 74250
subtract
Avg. Precision 8 18 44 76 141 269 525
Iteration count 240000 160000 40000 40000 40000 40000 40000
java.math.BigDecimal (symcjit) 30458 30187 96000 98750 105750 129000 211500
be.arci.math.BigDecimal (symcjit) 8708 8625 12250 13750 19250 27500 46750
com.ibm.math.BigDecimal (symcjit) 10333 10937 17750 24500 39750 63000 115250
com.tce.math.TBigDecimal (symcjit) 8000 8250 16500 19250 26250 39750 61750
multiply
Avg. Precision 8 18 44 76 141 269 525
Iteration count 192000 128000 32000 32000 32000 16000 6400
java.math.BigDecimal (symcjit) 15416 17187 22187 32812 63750 175625 609375
be.arci.math.BigDecimal (symcjit) 7708 10234 18750 39687 103125 332500 1192187
com.ibm.math.BigDecimal (symcjit) 24895 83203 444375 1299375 4297812 16058750 61156250
com.tce.math.TBigDecimal (symcjit) 11458 38593 195625 540625 1750625 6440000 24251562
divide
Avg. Precision 8 18 44 76 141 269 525
Iteration count 60000 40000 10000 10000 10000 4800 2000
java.math.BigDecimal (symcjit) 45666 48250 182000 225000 341000 733333 1730000
be.arci.math.BigDecimal (symcjit) 17333 18000 55000 110000 291000 916666 3240000
com.ibm.math.BigDecimal (symcjit) 18333 22000 593000 1543000 5839000 18000000 60745000
com.tce.math.TBigDecimal (symcjit) 21000 237500 862000 1461000 2818000 5972916 14885000
pow
Avg. Precision 8 18 44 76 141 269 525
Iteration count 24000 16000 4000 2000 500 60 10
java.math.BigInteger (symcjit) 71250 106875 220000 630000 1200000 3666666 11000000
be.arci.math.BigDecimal (symcjit) 55000 103125 342500 905000 2840000 9166666 33000000
com.ibm.math.BigDecimal (symcjit) 526666 2313750 14212500 42730000 143680000 509833333 1983000000
com.tce.math.TBigDecimal (symcjit) 249583 1070625 6330000 18785000 64142857 226000000 878000000
compareTo
Avg. Precision 8 18 44 76 141 269 525
Iteration count 2400000 1600000 400000 400000 400000 400000 400000
java.math.BigDecimal (symcjit) 2354 2406 62875 63575 65625 79225 90650
be.arci.math.BigDecimal (symcjit) 250 275 11675 14425 18950 27325 45725
com.ibm.math.BigDecimal (symcjit) 250 306 17975 24175 38725 62875 109300
com.tce.math.TBigDecimal (symcjit) 250 275 7550 8250 10300 13600 18525
equals
Avg. Precision 8 18 44 76 141 269 525
Iteration count 4800000 3200000 800000 800000 800000 800000 800000
java.math.BigDecimal (symcjit) 354 371 152 155 153 155 153
be.arci.math.BigDecimal (symcjit) 262 309 275 275 275 275 275
com.ibm.math.BigDecimal (symcjit) 2310 309 21087 29587 39137 64675 117475
com.tce.math.TBigDecimal (symcjit) 275 308 120 122 122 123 123
abs
Avg. Precision 8 18 44 76 141 269 525
Iteration count 4800000 9600000 7200000 12000000 22400000 43200000 84000000
java.math.BigDecimal (symcjit) 516 515 68 64 61 72 62
be.arci.math.BigDecimal (symcjit) 379 378 122 119 117 128 117
com.ibm.math.BigDecimal (symcjit) 402 412 176 164 159 161 161
com.tce.math.TBigDecimal (symcjit) 445 440 9 14 12 11 12
max
Avg. Precision 8 18 44 76 141 269 525
Iteration count 2400000 1600000 400000 400000 400000 400000 400000
java.math.BigDecimal (symcjit) 2104 2162 62875 63575 65625 79225 90625
be.arci.math.BigDecimal (symcjit) 387 412 11800 14425 19100 27325 45725
com.ibm.math.BigDecimal (symcjit) 387 450 17975 24175 38725 62750 109175
com.tce.math.TBigDecimal (symcjit) 295 306 7850 8525 10700 13850 18800
setScale
Avg. Precision 8 18 44 76 141 269 525
Iteration count 240000 160000 40000 40000 40000 40000 40000
java.math.BigDecimal (symcjit) 50333 50437 155000 174500 211500 306000 548000
be.arci.math.BigDecimal (symcjit) 4541 4812 5500 5500 7000 8250 12250
com.ibm.math.BigDecimal (symcjit) 4833 5125 7000 7000 9750 13750 20750
com.tce.math.TBigDecimal (symcjit) 7583 7562 517500 790750 1388250 2771000 6139250
new BigDecimal(java.math.BigDecimal)
Avg. Precision 8 18 44 76 141 269 525
Iteration count 186000 128000 32000 32000 32000 32000 32000
be.arci.math.BigDecimal (symcjit) 49687 84062 183750 300312 573125 1232187 2899062
com.ibm.math.BigDecimal (symcjit) 46250 82500 185312 300312 612812 1210000 3008750
com.tce.math.TBigDecimal (symcjit) 49218 87109 188750 309062 575000 1220312 3152812
toBigDecimal
Avg. Precision 8 18 44 76 141 269 525
Iteration count 480000 320000 80000 80000 80000 80000 80000
be.arci.math.BigDecimal (symcjit) 9625 9625 87125 161375 350125 736000 1892250
com.ibm.math.BigDecimal (symcjit) 26750 30875 120875 218375 443625 914500 2155875
com.tce.math.TBigDecimal (symcjit) 34333 45500 34375 47375 70000 111875 199750
number 'e' (microseconds)
Precision 8 16 32 64 128 256 512 1024 2048 4096
Iteration count
256
128
64
32
16
8
4
2
1
1
java.math.BigDecimal (symcjit)
3242187
5156250
10312500
24062500
68750000
226250000
920000000
4310000000
24990000000
158350000000
be.arci.math.BigDecimal (symcjit)
625000
859375
1718750
3437500
10625000
41250000
177500000
1015000000
6760000000
45320000000
com.ibm.math.BigDecimal (symcjit)
859375
1718750
6093750
29375000
151250000
906250000
5905000000
40455000000
284400000000
2034490000000
com.tce.math.TBigDecimal (symcjit)
859375
2968750
7656250
22187500
68750000
240000000
1015000000
4560000000
25590000000
154230000000