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
be.arci.math.BigDecimal production 5250 227
be.arci.math.BigDecimal evaluation 5500 275
valueOf(long) longValue()Iteration count 200000 20000000
be.arci.math.BigDecimal production 5450
282
be.arci.math.BigDecimal evaluation 6300
330
new BigDecimal(double) doubleValue()Iteration count 10000 10000
be.arci.math.BigDecimal production 104000
44000
be.arci.math.BigDecimal evaluation 121000
44000
new BigDecimal(String)
Avg. Precision 8 18 44 76 141 269 525
Iteration count 500000 250000 166660 125000 90900 62500 45440
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 8460 9680 13500 17600 24202 38560 68882
be.arci.math.BigDecimal evaluation 8560 10960 14160 18880 26512 42080 73723
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
toString
Avg. Precision 8 18 44 76 141 269 525
Iteration count 192000 128000 32000 32000 32000 32000 32000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 7447 9453 13750 18750 25937 42812 77187
be.arci.math.BigDecimal evaluation 7708 9921 13750 18750 27500 44375 82187
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
add
Avg. Precision 8 18 44 76 141 269 525
Iteration count 240000 160000 40000 40000 40000 40000 40000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 5708 7187 7000 9500 12500 18000 31500
be.arci.math.BigDecimal evaluation 7333 8875 9500 11000 13750 20750 34250
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
subtract
Avg. Precision 8 18 44 76 141 269 525
Iteration count 240000 160000 40000 40000 40000 40000 40000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 8458 8937 12250 13750 19250 27500 46750
be.arci.math.BigDecimal evaluation 9625 9625 12500 15000 22000 31750 50750
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
multiply
Avg. Precision 8 18 44 76 141 269 525
Iteration count 192000 128000 32000 32000 32000 16000 6400
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 8281 10312 20625 39687 106250 340000 1201562
be.arci.math.BigDecimal evaluation 9166 14609 25625 54687 149375 480625 1742187
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
divide
Avg. Precision 8 18 44 76 141 269 525
Iteration count 60000 40000 10000 10000 10000 4800 2000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 18333 18000 55000 116000 296000 937500 3270000
be.arci.math.BigDecimal evaluation 23833 21750 71000 154000 423000 1337500 4725000
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
pow
Avg. Precision 8 18 44 76 141 269 525
Iteration count 24000 16000 4000 2000 560 70 10
be.arci.math.BigDecimal evaluation 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 57083 106250 355000 935000 2839285 9428571 33000000
be.arci.math.BigDecimal evaluation 68750 137500 495000 1320000 4125000 14142857 55000000
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
compareTo
Avg. Precision 8 18 44 76 141 269 525
Iteration count 2400000 1600000 400000 400000 400000 400000 400000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 250 275 12500 14825 19375 27750 46425
be.arci.math.BigDecimal evaluation 275 306 13600 16050 21700 31575 49300
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
equals
Avg. Precision 8 18 44 76 141 269 525
Iteration count 4800000 3200000 800000 800000 800000 800000 800000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 445 515 487 412 412 475 412
be.arci.math.BigDecimal evaluation 481 534 487 475 487 475 475
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
abs
Avg. Precision 8 18 44 76 141 269 525
Iteration count 4800000 9600000 6400000 12000000 22400000 42400000 84000000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 410 411 110 110 108 129 109
be.arci.math.BigDecimal evaluation 433 429 110 118 108 108 109
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
max
Avg. Precision 8 18 44 76 141 269 525
Iteration count 2400000 1600000 400000 400000 400000 400000 400000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 387 412 12500 14975 19500 27875 46000
be.arci.math.BigDecimal evaluation 412 412 13575 15925 21700 31575 49450
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
setScale
Avg. Precision 8 18 44 76 141 269 525
Iteration count 240000 160000 40000 40000 40000 40000 40000
java.math.BigDecimal (symcjit) 0 0 0 0 0 0 0
be.arci.math.BigDecimal production 5041 5125 5500 5500 6750 9500 12500
be.arci.math.BigDecimal evaluation 5500 5875 5500 7000 8250 9500 13750
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
new BigDecimal(java.math.BigDecimal)
Avg. Precision 8 18 44 76 141 269 525
Iteration count 192000 128000 32000 32000 32000 32000 32000
be.arci.math.BigDecimal production 49687 84062 183750 300312 570000 1194687 2899062
be.arci.math.BigDecimal evaluation 48906 85390 187187 307187 561250 1320000 3055000
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
toBigDecimal
Avg. Precision 8 18 44 76 141 269 525
Iteration count 480000 320000 80000 80000 80000 80000 80000
be.arci.math.BigDecimal production 9500 9437 87875 164125 341250 825250 1923125
be.arci.math.BigDecimal evaluation 9479 52531 109125 199750 423625 1025750 2365250
com.tce.math.TBigDecimal (symcjit) 0 0 0 0 0 0 0
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
be.arci.math.BigDecimal production
625000
859375
1718750
3437500
10625000
41250000
177500000
1045000000
6810000000
45540000000
be.arci.math.BigDecimal evaluation
664062
859375
1718750
5000000
13750000
48750000
247500000
1455000000
9670000000
67390000000