Benchmark

Benchmarks in nanoseconds (10-9s) per operation comparing standard JDK BigDecimal (versions 1.1.8 and 1.3.0) with ArciMath BigDecimal on a Win98 AMD K6-2 350MHz, 16MB heap memory.


view chartvalueOf(int)view chartintValue()
Iteration count20000020000000
java.math.BigDecimal (JDK 1.1.8 with symcjit)10700541
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)7400140
java.math.BigDecimal (JDK 1.3.0-C)1050233
be.arci.math.BigDecimal (JDK 1.3.0-C)800272
view chartvalueOf(long)view chartlongValue()
Iteration count20000020000000
java.math.BigDecimal (JDK 1.1.8 with symcjit)10750 1167
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)8250 330
java.math.BigDecimal (JDK 1.3.0-C)1050 467
be.arci.math.BigDecimal (JDK 1.3.0-C)1600 401
view chartnew BigDecimal(double)view chartdoubleValue()
Iteration count1000010000
java.math.BigDecimal (JDK 1.1.8 with symcjit)110000 208000
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)115000 231000
java.math.BigDecimal (JDK 1.3.0-C)116000 159000
be.arci.math.BigDecimal (JDK 1.3.0-C)88000 55000
view chartnew BigDecimal(String)
Avg. Precision8184476141269525
Iteration count500000250000166660125000909006250045440
java.math.BigDecimal (JDK 1.1.8 with symcjit)161402000023070934272056380611433605028389
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)148201908022446841216091243123947207482174
java.math.BigDecimal (JDK 1.3.0-C)7800123201851674033601032563305568010164392
be.arci.math.BigDecimal (JDK 1.3.0-C)34005040894014080242024384084727
view charttoString
Avg. Precision8184476141269525
Iteration count2560001280003200032000320003200032000
java.math.BigDecimal (JDK 1.1.8 with symcjit)388287039016468727468752343711725003667812
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)519146007817843728656252687511037502510937
java.math.BigDecimal (JDK 1.3.0-C)1542921953806251475003175007859372248437
be.arci.math.BigDecimal (JDK 1.3.0-C)25784218843713750275004968797812
view chartadd
Avg. Precision8184476141269525
Iteration count3200001600004000040000400004000040000
java.math.BigDecimal (JDK 1.1.8 with symcjit)1784318937755008250089250112500330750
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)943796254125043750495005900075500
java.math.BigDecimal (JDK 1.3.0-C)240620621650019250220003150046750
be.arci.math.BigDecimal (JDK 1.3.0-C)2593375055008250125002050038250
view chartsubtract
Avg. Precision8184476141269525
Iteration count3200001600004000040000400004000040000
java.math.BigDecimal (JDK 1.1.8 with symcjit)297183056293250101500110000133250369250
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)875095624125043750495005900075500
java.math.BigDecimal (JDK 1.3.0-C)206220621650019250235003150046750
be.arci.math.BigDecimal (JDK 1.3.0-C)32503750675011000165002750052000
view chartmultiply
Avg. Precision8184476141269525
Iteration count256000128000320003200032000160006400
java.math.BigDecimal (JDK 1.1.8 with symcjit)1437515937206253250065312171250643750
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)75007656137501875044687130625446875
java.math.BigDecimal (JDK 1.3.0-C)1523218768751718755000185000678125
be.arci.math.BigDecimal (JDK 1.3.0-C)21482968103122218758437182500626562
view chartdivide
Avg. Precision8184476141269525
Iteration count800004000010000100001000048002000
java.math.BigDecimal (JDK 1.1.8 with symcjit)47375482501810002360003520006979161755000
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)323753850019800035200079700022208337360000
java.math.BigDecimal (JDK 1.3.0-C)8250110001750003900001028000313541610685000
be.arci.math.BigDecimal (JDK 1.3.0-C)10875110006600016000043900014312505105000
view chartcompareTo
Avg. Precision8184476141269525
Iteration count32000001600000400000400000400000400000400000
java.math.BigDecimal (JDK 1.1.8 with symcjit)260926066275064125667257662591875
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)221521933500036525407754670057950
java.math.BigDecimal (JDK 1.3.0-C)10818931565017150199002580036675
be.arci.math.BigDecimal (JDK 1.3.0-C)378381782510850167502802551075
view chartequals
Avg. Precision8184476141269525
Iteration count64000003200000800000800000800000800000800000
java.math.BigDecimal (JDK 1.1.8 with symcjit)368360153155153155162
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)360360153155158158158
java.math.BigDecimal (JDK 1.3.0-C)325332137137138138140
be.arci.math.BigDecimal (JDK 1.3.0-C)325393337337337337350
view chartabs
Avg. Precision8184476141269525
Iteration count64000009600000640000012000000224000004240000084000000
java.math.BigDecimal (JDK 1.1.8 with symcjit)5405726769788094
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)5925666869687768
java.math.BigDecimal (JDK 1.3.0-C)215210120123120120121
be.arci.math.BigDecimal (JDK 1.3.0-C)214205129128127125125
view chartmax
Avg. Precision8184476141269525
Iteration count32000001600000400000400000400000400000400000
java.math.BigDecimal (JDK 1.1.8 with symcjit)262526436290064125668757675092000
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)219621933487536400406504655057800
java.math.BigDecimal (JDK 1.3.0-C)11349561567517175200502580036800
be.arci.math.BigDecimal (JDK 1.3.0-C)481481795010975169002830051075
view chartsetScale
Avg. Precision8184476141269525
Iteration count3200001600004000040000400004000040000
java.math.BigDecimal (JDK 1.1.8 with symcjit)4859348750156500171750214250326750531500
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit)23843240001182501690002992506755001947000
java.math.BigDecimal (JDK 1.3.0-C)63436562715001332503060008445002695500
be.arci.math.BigDecimal (JDK 1.3.0-C)1531168727502750425055006750
view chartnumber 'e' (microseconds)
Precision816326412825651210242048
Iteration count 256 128 64 32 16 8 4 2 1
java.math.BigDecimal (JDK 1.1.8 with symcjit) 3242187 5625000 10312500 24062500 65000000 220000000 852500000 4695000000 26140000000
java.math.BigDecimal (JDK13 version running in JDK 1.1.8 with symcjit) 2382812 4296875 9375000 27187500 96250000 405000000 2170000000 13345000000 89030000000
java.math.BigDecimal (JDK 1.3.0-C) 859375 1718750 5156250 18750000 85625000 460000000 2787500000 18265000000 126170000000
be.arci.math.BigDecimal (JDK 1.3.0-C) 429687 390625 1718750 3437500 10625000 48750000 262500000 1565000000 10550000000