2016-05-31 15:18:35 +02:00
|
|
|
Benchmarking
|
|
|
|
============
|
|
|
|
|
2017-12-22 06:09:04 +01:00
|
|
|
Dash Core has an internal benchmarking framework, with benchmarks
|
2018-08-02 16:22:47 +02:00
|
|
|
for cryptographic algorithms (e.g. SHA1, SHA256, SHA512, RIPEMD160), as well as the rolling bloom filter.
|
2016-05-31 15:18:35 +02:00
|
|
|
|
2018-01-22 14:44:31 +01:00
|
|
|
Running
|
|
|
|
---------------------
|
2018-01-16 08:29:17 +01:00
|
|
|
After compiling Dash Core, the benchmarks can be run with:
|
2018-01-22 14:44:31 +01:00
|
|
|
|
|
|
|
src/bench/bench_dash
|
2016-05-31 15:18:35 +02:00
|
|
|
|
|
|
|
The output will look similar to:
|
|
|
|
```
|
2018-01-22 14:44:31 +01:00
|
|
|
#Benchmark,count,min(ns),max(ns),average(ns),min_cycles,max_cycles,average_cycles
|
|
|
|
BLSDKG_BuildQuorumVerificationVectors_parallel_10,704,1399697,1497810,1430036,3211716,3436845,3281333
|
|
|
|
BLSDKG_BuildQuorumVerificationVectors_parallel_100,12,99035786,101316134,99729727,227245446,232477960,228837811
|
|
|
|
BLSDKG_BuildQuorumVerificationVectors_parallel_400,2,1589266297,1589266297,1589266297,3646698139,3646698139,3646698139
|
|
|
|
BLSDKG_BuildQuorumVerificationVectors_simple_10,256,3908369,4242371,4033544,8968064,9734474,9255290
|
|
|
|
BLSDKG_BuildQuorumVerificationVectors_simple_100,4,375179651,376536686,375858169,860879635,863993434,862436534
|
|
|
|
BLSDKG_BuildQuorumVerificationVectors_simple_400,2,6039710258,6039710258,6039710258,13858596395,13858596395,13858596395
|
|
|
|
BLSDKG_VerifyContributionShares_aggregated_10,26,36899700,41364237,38936903,84669343,94913488,89343827
|
|
|
|
BLSDKG_VerifyContributionShares_aggregated_100,2,1662641204,1662641204,1662641204,3815062730,3815062730,3815062730
|
|
|
|
BLSDKG_VerifyContributionShares_aggregated_400,2,14616986793,14616986793,14616986793,33539840892,33539840892,33539840892
|
|
|
|
BLSDKG_VerifyContributionShares_parallel_10,104,9356764,12185841,9778710,21469836,27961383,22438031
|
|
|
|
BLSDKG_VerifyContributionShares_parallel_100,2,706528236,706528236,706528236,1621185327,1621185327,1621185327
|
|
|
|
BLSDKG_VerifyContributionShares_parallel_400,2,11002241613,11002241613,11002241613,25245520135,25245520135,25245520135
|
|
|
|
BLSDKG_VerifyContributionShares_parallel_aggregated_10,80,12215833,14349386,13188432,28030202,32925802,30261910
|
|
|
|
BLSDKG_VerifyContributionShares_parallel_aggregated_100,4,387910076,442382377,415146227,890090576,1015081642,952586109
|
|
|
|
BLSDKG_VerifyContributionShares_parallel_aggregated_400,2,3824768297,3824768297,3824768297,8776235667,8776235667,8776235667
|
|
|
|
BLSDKG_VerifyContributionShares_simple_10,36,30537900,31343020,30826660,70071654,71919048,70734229
|
|
|
|
BLSDKG_VerifyContributionShares_simple_100,2,2786751371,2786751371,2786751371,6394423130,6394423130,6394423130
|
|
|
|
BLSDKG_VerifyContributionShares_simple_400,2,43357125687,43357125687,43357125687,99486425209,99486425209,99486425209
|
|
|
|
BLSPubKeyAggregate_Normal,14336,69705,71509,70365,159944,164085,161460
|
|
|
|
BLSSecKeyAggregate_Normal,655360,1577,1701,1590,3619,3903,3649
|
|
|
|
BLSSign_Normal,256,3920386,4489107,4100818,8995714,10300622,9409668
|
|
|
|
BLSVerify_Batched,208,4171190,13519600,5783653,9571142,31021854,13271073
|
|
|
|
BLSVerify_BatchedParallel,768,1123655,1732350,1388469,2578320,3975022,3185958
|
|
|
|
BLSVerify_LargeAggregatedBlock1000,2,4110864469,4110864469,4110864469,9432718832,9432718832,9432718832
|
|
|
|
BLSVerify_LargeAggregatedBlock10000,2,41010492441,41010492441,41010492441,94101952688,94101952688,94101952688
|
|
|
|
BLSVerify_LargeAggregatedBlock1000PreVerified,4,490207286,491448876,490828081,1124820912,1127669823,1126245367
|
|
|
|
BLSVerify_LargeBlock1000,2,9001585461,9001585461,9001585461,20654877047,20654877047,20654877047
|
|
|
|
BLSVerify_LargeBlockSelfAggregated1000,2,4171002256,4171002256,4171002256,9570706905,9570706905,9570706905
|
|
|
|
BLSVerify_LargeBlockSelfAggregated10000,2,41156496178,41156496178,41156496178,94436944969,94436944969,94436944969
|
|
|
|
BLSVerify_Normal,120,8641620,9167980,8817814,19828899,21036717,20233196
|
|
|
|
Base58CheckEncode,327680,3258,3336,3305,7476,7654,7584
|
|
|
|
Base58Decode,851968,1186,1217,1204,2722,2793,2764
|
|
|
|
Base58Encode,458752,2173,2202,2189,4987,5052,5023
|
|
|
|
BenchLockedPool,320,3121007,3186697,3148930,7161412,7312136,7225478
|
|
|
|
CCheckQueueSpeed,8192,110425,152908,133263,253383,350861,305784
|
|
|
|
CCheckQueueSpeedPrevectorJob,1024,935139,1536040,989425,2145753,3524574,2270317
|
|
|
|
CCoinsCaching,212992,4939,5337,5030,11333,12248,11542
|
|
|
|
CHACHA20_1MB,448,2257940,2310387,2285812,5181029,5301376,5244984
|
|
|
|
CHACHA20_256BYTES,1835008,560,577,570,1285,1324,1309
|
|
|
|
CHACHA20_64BYTES,6815744,148,155,152,340,355,350
|
|
|
|
CHACHA20_POLY1305_AEAD_1MB_ENCRYPT_DECRYPT,160,6252800,7065589,6419857,14347569,16212568,14730887
|
|
|
|
CHACHA20_POLY1305_AEAD_1MB_ONLY_ENCRYPT,320,3151067,3200999,3175685,7230379,7344956,7286870
|
|
|
|
CHACHA20_POLY1305_AEAD_256BYTES_ENCRYPT_DECRYPT,491520,2059,2186,2091,4725,5016,4798
|
|
|
|
CHACHA20_POLY1305_AEAD_256BYTES_ONLY_ENCRYPT,983040,1035,1075,1048,2375,2467,2406
|
|
|
|
CHACHA20_POLY1305_AEAD_64BYTES_ENCRYPT_DECRYPT,1179648,917,951,933,2105,2183,2142
|
|
|
|
CHACHA20_POLY1305_AEAD_64BYTES_ONLY_ENCRYPT,2359296,465,474,470,1067,1087,1079
|
|
|
|
CoinSelection,448,2284556,2375018,2330599,5242101,5449673,5347749
|
|
|
|
DeserializeAndCheckBlockTest,208,4882918,5744853,5173432,11204249,13182095,11870863
|
|
|
|
DeserializeBlockTest,224,4304003,4984282,4470468,9875888,11436885,10257855
|
|
|
|
ECDSASign,20480,51538,55658,52832,118259,127712,121228
|
|
|
|
ECDSAVerify,12288,81739,84176,82480,187557,193150,189257
|
|
|
|
ECDSAVerify_LargeBlock,12,83471337,84588244,84113706,191531781,194094607,193005759
|
|
|
|
FastRandom_1bit,640,1593260,1626135,1605721,3655865,3731305,3684459
|
|
|
|
FastRandom_32bit,104,10173971,10475893,10349270,23344997,24037795,23747245
|
|
|
|
HASH_1MB,288,3550501,3646088,3577692,8146915,8366255,8209307
|
|
|
|
HASH_256BYTES,786432,1350,1404,1385,3098,3221,3178
|
|
|
|
HASH_64BYTES,1441792,717,740,733,1645,1698,1682
|
|
|
|
HASH_DSHA256,320,3373100,3419626,3404137,7739845,7846611,7811070
|
|
|
|
HASH_DSHA256_0032b,2,517102286,517102286,517102286,1186533413,1186533413,1186533413
|
|
|
|
HASH_DSHA256_0032b_single,1966080,507,522,518,1164,1199,1188
|
|
|
|
HASH_DSHA256_0080b_single,1441792,732,744,737,1680,1707,1691
|
|
|
|
HASH_DSHA256_0128b_single,1048576,947,980,956,2174,2250,2195
|
|
|
|
HASH_DSHA256_0512b_single,458752,2202,2382,2281,5053,5467,5236
|
|
|
|
HASH_DSHA256_1024b_single,262144,3926,4091,3982,9008,9388,9138
|
|
|
|
HASH_DSHA256_2048b_single,147456,7391,7641,7510,16961,17533,17234
|
|
|
|
HASH_RIPEMD160,384,2680162,2767753,2737282,6149849,6350832,6280918
|
|
|
|
HASH_SHA1,512,2005465,2218449,2042382,4601703,5090415,4686414
|
|
|
|
HASH_SHA256,320,3360086,3408018,3385936,7709991,7819982,7769307
|
|
|
|
HASH_SHA256D64_1024,7168,140563,146289,143313,322534,335673,328845
|
|
|
|
HASH_SHA256_0032b,6,247481456,247866187,247632065,567866440,568749209,568211978
|
|
|
|
HASH_SHA512,320,3201464,3273199,3232981,7346023,7510629,7418339
|
|
|
|
HASH_SipHash_0032b,36,28778743,29584618,29115324,66035173,67884337,66807487
|
|
|
|
HASH_X11,480,2112322,2766988,2181266,4846896,6349081,5005094
|
|
|
|
HASH_X11_0032b_single,57344,17770,18406,18231,40774,42235,41833
|
|
|
|
HASH_X11_0080b_single,57344,18127,18742,18495,41595,43007,42439
|
|
|
|
HASH_X11_0128b_single,53248,18654,22617,19687,42804,51897,45173
|
|
|
|
HASH_X11_0512b_single,45056,21955,22980,22517,50379,52730,51668
|
|
|
|
HASH_X11_1024b_single,45056,23471,26837,24000,53856,61579,55070
|
|
|
|
HASH_X11_2048b_single,40960,25663,26526,26046,58887,60867,59765
|
|
|
|
MempoolEviction,45056,21801,23156,22417,50025,53134,51438
|
|
|
|
MerkleRoot,768,1307235,1333867,1318986,2999559,3060666,3026522
|
|
|
|
POLY1305_1MB,1152,876525,895608,885109,2011265,2055046,2030955
|
|
|
|
POLY1305_256BYTES,4194304,234,250,239,538,575,549
|
|
|
|
POLY1305_64BYTES,13631488,77,79,77,177,181,178
|
|
|
|
PrevectorAssign,65536,15576,15988,15810,35741,36687,36279
|
|
|
|
PrevectorAssignTo,262144,4001,4081,4046,9181,9365,9286
|
|
|
|
PrevectorClearNontrivial,22528,43967,45061,44459,100887,103398,102016
|
|
|
|
PrevectorClearTrivial,106496,9063,11172,9515,20796,25635,21834
|
|
|
|
PrevectorDestructorNontrivial,22528,44099,45393,44808,101190,104159,102816
|
|
|
|
PrevectorDestructorTrivial,106496,9241,9892,9397,21205,22698,21562
|
|
|
|
PrevectorResizeNontrivial,22528,43942,45080,44549,100829,103440,102222
|
|
|
|
PrevectorResizeTrivial,106496,9179,11874,9659,21063,27248,22165
|
|
|
|
RollingBloom-refresh,1,126794,126794,126794
|
|
|
|
RollingBloom-refresh,1,119840,119840,119840
|
|
|
|
RollingBloom-refresh,1,119632,119632,119632
|
|
|
|
RollingBloom-refresh,1,123198,123198,123198
|
|
|
|
RollingBloom-refresh,1,136900,136900,136900
|
|
|
|
RollingBloom-refresh,1,119848,119848,119848
|
|
|
|
RollingBloom-refresh,1,138126,138126,138126
|
|
|
|
RollingBloom-refresh,1,119845,119845,119845
|
|
|
|
RollingBloom-refresh,1,121241,121241,121241
|
|
|
|
RollingBloom-refresh,1,109540,109540,109540
|
|
|
|
RollingBloom-refresh,1,123938,123938,123938
|
|
|
|
RollingBloom-refresh,1,119872,119872,119872
|
|
|
|
RollingBloom-refresh,1,109354,109354,109354
|
|
|
|
RollingBloom-refresh,1,120078,120078,120078
|
|
|
|
RollingBloom-refresh,1,136176,136176,136176
|
|
|
|
RollingBloom-refresh,1,119864,119864,119864
|
|
|
|
RollingBloom-refresh,1,109518,109518,109518
|
|
|
|
RollingBloom-refresh,1,119726,119726,119726
|
|
|
|
RollingBloom-refresh,1,123659,123659,123659
|
|
|
|
RollingBloom-refresh,1,123630,123630,123630
|
|
|
|
RollingBloom-refresh,1,126151,126151,126151
|
|
|
|
RollingBloom-refresh,1,132464,132464,132464
|
|
|
|
RollingBloom-refresh,1,120060,120060,120060
|
|
|
|
RollingBloom-refresh,1,128411,128411,128411
|
|
|
|
RollingBloom-refresh,1,124253,124253,124253
|
|
|
|
RollingBloom-refresh,1,123863,123863,123863
|
|
|
|
RollingBloom-refresh,1,133400,133400,133400
|
|
|
|
RollingBloom-refresh,1,126750,126750,126750
|
|
|
|
RollingBloom,1703936,569,603,587,1306,1383,1347
|
|
|
|
Sleep100ms,10,100100567,100143382,100120609,229688902,229787148,229734943
|
|
|
|
Trig,50331648,14,21,21,34,49,48
|
|
|
|
int_atoi,335544320,3,3,3,6,7,6
|
|
|
|
int_lexical_cast,41943040,24,25,25,55,58,57
|
|
|
|
strings_1_itostr,2359296,431,447,440,991,1026,1010
|
|
|
|
strings_1_lexical_cast,20971520,46,51,50,106,117,115
|
|
|
|
strings_1_numberToString,2883584,346,355,352,795,814,807
|
|
|
|
strings_1_to_string,11534336,82,89,86,190,206,199
|
|
|
|
strings_2_multi_itostr,491520,2013,2085,2067,4621,4785,4744
|
|
|
|
strings_2_multi_lexical_cast,3670016,251,286,276,576,657,633
|
|
|
|
strings_2_multi_numberToString,589824,1732,1851,1794,3975,4248,4117
|
|
|
|
strings_2_multi_to_string,2097152,462,509,489,1061,1169,1123
|
|
|
|
strings_2_strptintf,1441792,714,742,727,1639,1704,1669
|
2016-05-31 15:18:35 +02:00
|
|
|
```
|
|
|
|
|
2018-01-22 14:44:31 +01:00
|
|
|
Help
|
|
|
|
---------------------
|
|
|
|
`-?` will print a list of options and exit:
|
|
|
|
|
2020-04-06 18:56:32 +02:00
|
|
|
src/bench/bench_dash -?
|
2018-01-22 14:44:31 +01:00
|
|
|
|
|
|
|
Notes
|
|
|
|
---------------------
|
2016-05-31 15:18:35 +02:00
|
|
|
More benchmarks are needed for, in no particular order:
|
|
|
|
- Script Validation
|
|
|
|
- CCoinDBView caching
|
|
|
|
- Coins database
|
|
|
|
- Memory pool
|
|
|
|
- Wallet coin selection
|