Lowmem
- メモリ使用量削減のため、メッセージを構造体内部に持たないように変更した。
- 副作用としてハッシュ関数の実行が高速になった。
before(masterブランチのコードにdefaultパラメーターでベンチマークを実施する修正を淹れたもの)
test Md2::B0 ... bench: 2,933 ns/iter (+/- 71)
test Md2::B512 ... bench: 47,849 ns/iter (+/- 1,629)
test Md2::KB1 ... bench: 94,551 ns/iter (+/- 5,582)
test Md2::KB16 ... bench: 1,444,322 ns/iter (+/- 53,386)
test Md2::KB2 ... bench: 186,130 ns/iter (+/- 7,066)
test Md2::KB4 ... bench: 369,776 ns/iter (+/- 19,276)
test Md2::KB512 ... bench: 46,336,658 ns/iter (+/- 653,300)
test Md2::KB64 ... bench: 5,792,119 ns/iter (+/- 139,475)
test Md2::MB1 ... bench: 92,675,246 ns/iter (+/- 1,295,477)
test Md4::B0 ... bench: 310 ns/iter (+/- 44)
test Md4::B512 ... bench: 1,299 ns/iter (+/- 47)
test Md4::KB1 ... bench: 2,300 ns/iter (+/- 107)
test Md4::KB16 ... bench: 27,470 ns/iter (+/- 1,009)
test Md4::KB2 ... bench: 3,947 ns/iter (+/- 124)
test Md4::KB4 ... bench: 7,239 ns/iter (+/- 285)
test Md4::KB512 ... bench: 865,608 ns/iter (+/- 31,373)
test Md4::KB64 ... bench: 108,635 ns/iter (+/- 4,754)
test Md4::MB1 ... bench: 2,247,996 ns/iter (+/- 82,354)
test Md5::B0 ... bench: 359 ns/iter (+/- 13)
test Md5::B512 ... bench: 1,674 ns/iter (+/- 64)
test Md5::KB1 ... bench: 2,698 ns/iter (+/- 102)
test Md5::KB16 ... bench: 34,957 ns/iter (+/- 1,216)
test Md5::KB2 ... bench: 4,791 ns/iter (+/- 169)
test Md5::KB4 ... bench: 9,015 ns/iter (+/- 486)
test Md5::KB512 ... bench: 1,104,197 ns/iter (+/- 31,696)
test Md5::KB64 ... bench: 135,418 ns/iter (+/- 5,526)
test Md5::MB1 ... bench: 2,701,355 ns/iter (+/- 91,921)
test Ripemd128::B0 ... bench: 506 ns/iter (+/- 19)
test Ripemd128::B512 ... bench: 3,158 ns/iter (+/- 132)
test Ripemd128::KB1 ... bench: 5,606 ns/iter (+/- 216)
test Ripemd128::KB16 ... bench: 75,436 ns/iter (+/- 2,215)
test Ripemd128::KB2 ... bench: 10,100 ns/iter (+/- 285)
test Ripemd128::KB4 ... bench: 19,291 ns/iter (+/- 588)
test Ripemd128::KB512 ... bench: 2,365,541 ns/iter (+/- 60,851)
test Ripemd128::KB64 ... bench: 293,636 ns/iter (+/- 7,574)
test Ripemd128::MB1 ... bench: 5,260,685 ns/iter (+/- 114,847)
test Ripemd160::B0 ... bench: 729 ns/iter (+/- 29)
test Ripemd160::B512 ... bench: 4,758 ns/iter (+/- 224)
test Ripemd160::KB1 ... bench: 8,644 ns/iter (+/- 219)
test Ripemd160::KB16 ... bench: 118,310 ns/iter (+/- 2,795)
test Ripemd160::KB2 ... bench: 15,775 ns/iter (+/- 757)
test Ripemd160::KB4 ... bench: 30,732 ns/iter (+/- 933)
test Ripemd160::KB512 ... bench: 3,786,101 ns/iter (+/- 94,529)
test Ripemd160::KB64 ... bench: 482,467 ns/iter (+/- 16,249)
test Ripemd160::MB1 ... bench: 8,097,772 ns/iter (+/- 189,202)
test Ripemd256::B0 ... bench: 661 ns/iter (+/- 27)
test Ripemd256::B512 ... bench: 3,910 ns/iter (+/- 85)
test Ripemd256::KB1 ... bench: 6,752 ns/iter (+/- 112)
test Ripemd256::KB16 ... bench: 90,726 ns/iter (+/- 2,951)
test Ripemd256::KB2 ... bench: 12,221 ns/iter (+/- 376)
test Ripemd256::KB4 ... bench: 23,483 ns/iter (+/- 971)
test Ripemd256::KB512 ... bench: 2,884,738 ns/iter (+/- 65,146)
test Ripemd256::KB64 ... bench: 368,806 ns/iter (+/- 16,101)
test Ripemd256::MB1 ... bench: 6,331,970 ns/iter (+/- 227,431)
test Ripemd320::B0 ... bench: 885 ns/iter (+/- 29)
test Ripemd320::B512 ... bench: 5,530 ns/iter (+/- 289)
test Ripemd320::KB1 ... bench: 10,090 ns/iter (+/- 323)
test Ripemd320::KB16 ... bench: 138,023 ns/iter (+/- 5,537)
test Ripemd320::KB2 ... bench: 18,815 ns/iter (+/- 1,170)
test Ripemd320::KB4 ... bench: 35,594 ns/iter (+/- 1,095)
test Ripemd320::KB512 ... bench: 4,334,335 ns/iter (+/- 111,297)
test Ripemd320::KB64 ... bench: 550,295 ns/iter (+/- 29,826)
test Ripemd320::MB1 ... bench: 9,262,552 ns/iter (+/- 267,578)
test Sha0::B0 ... bench: 458 ns/iter (+/- 15)
test Sha0::B512 ... bench: 2,415 ns/iter (+/- 61)
test Sha0::KB1 ... bench: 3,931 ns/iter (+/- 131)
test Sha0::KB16 ... bench: 48,342 ns/iter (+/- 1,561)
test Sha0::KB2 ... bench: 7,079 ns/iter (+/- 391)
test Sha0::KB4 ... bench: 12,828 ns/iter (+/- 427)
test Sha0::KB512 ... bench: 1,529,320 ns/iter (+/- 74,278)
test Sha0::KB64 ... bench: 196,866 ns/iter (+/- 7,572)
test Sha0::MB1 ... bench: 3,576,476 ns/iter (+/- 109,205)
test Sha1::B0 ... bench: 452 ns/iter (+/- 17)
test Sha1::B512 ... bench: 2,507 ns/iter (+/- 111)
test Sha1::KB1 ... bench: 4,074 ns/iter (+/- 173)
test Sha1::KB16 ... bench: 51,317 ns/iter (+/- 2,965)
test Sha1::KB2 ... bench: 7,344 ns/iter (+/- 242)
test Sha1::KB4 ... bench: 13,370 ns/iter (+/- 463)
test Sha1::KB512 ... bench: 1,587,515 ns/iter (+/- 33,468)
test Sha1::KB64 ... bench: 203,421 ns/iter (+/- 10,891)
test Sha1::MB1 ... bench: 3,718,260 ns/iter (+/- 88,073)
test Sha224::B0 ... bench: 605 ns/iter (+/- 31)
test Sha224::B512 ... bench: 3,461 ns/iter (+/- 125)
test Sha224::KB1 ... bench: 5,667 ns/iter (+/- 172)
test Sha224::KB16 ... bench: 76,070 ns/iter (+/- 3,459)
test Sha224::KB2 ... bench: 10,709 ns/iter (+/- 414)
test Sha224::KB4 ... bench: 19,739 ns/iter (+/- 739)
test Sha224::KB512 ... bench: 2,418,414 ns/iter (+/- 87,564)
test Sha224::KB64 ... bench: 309,853 ns/iter (+/- 20,754)
test Sha224::MB1 ... bench: 5,359,874 ns/iter (+/- 158,081)
test Sha256::B0 ... bench: 648 ns/iter (+/- 41)
test Sha256::B512 ... bench: 3,342 ns/iter (+/- 100)
test Sha256::KB1 ... bench: 5,983 ns/iter (+/- 181)
test Sha256::KB16 ... bench: 75,823 ns/iter (+/- 2,795)
test Sha256::KB2 ... bench: 10,377 ns/iter (+/- 416)
test Sha256::KB4 ... bench: 19,725 ns/iter (+/- 475)
test Sha256::KB512 ... bench: 2,409,289 ns/iter (+/- 48,335)
test Sha256::KB64 ... bench: 309,090 ns/iter (+/- 12,546)
test Sha256::MB1 ... bench: 5,435,395 ns/iter (+/- 230,048)
test Sha384::B0 ... bench: 901 ns/iter (+/- 44)
test Sha384::B512 ... bench: 2,673 ns/iter (+/- 76)
test Sha384::KB1 ... bench: 4,248 ns/iter (+/- 196)
test Sha384::KB16 ... bench: 51,783 ns/iter (+/- 3,656)
test Sha384::KB2 ... bench: 7,541 ns/iter (+/- 278)
test Sha384::KB4 ... bench: 13,748 ns/iter (+/- 598)
test Sha384::KB512 ... bench: 1,613,553 ns/iter (+/- 45,416)
test Sha384::KB64 ... bench: 203,605 ns/iter (+/- 7,281)
test Sha384::MB1 ... bench: 3,754,642 ns/iter (+/- 131,012)
test Sha512::B0 ... bench: 960 ns/iter (+/- 79)
test Sha512::B512 ... bench: 2,768 ns/iter (+/- 117)
test Sha512::KB1 ... bench: 4,365 ns/iter (+/- 129)
test Sha512::KB16 ... bench: 51,472 ns/iter (+/- 1,964)
test Sha512::KB2 ... bench: 7,417 ns/iter (+/- 185)
test Sha512::KB4 ... bench: 13,859 ns/iter (+/- 893)
test Sha512::KB512 ... bench: 1,605,776 ns/iter (+/- 32,380)
test Sha512::KB64 ... bench: 208,209 ns/iter (+/- 7,835)
test Sha512::MB1 ... bench: 3,762,844 ns/iter (+/- 128,537)
test Sha512Trunc224::B0 ... bench: 797 ns/iter (+/- 23)
test Sha512Trunc224::B512 ... bench: 2,537 ns/iter (+/- 127)
test Sha512Trunc224::KB1 ... bench: 4,115 ns/iter (+/- 270)
test Sha512Trunc224::KB16 ... bench: 51,948 ns/iter (+/- 2,196)
test Sha512Trunc224::KB2 ... bench: 7,537 ns/iter (+/- 444)
test Sha512Trunc224::KB4 ... bench: 13,649 ns/iter (+/- 1,110)
test Sha512Trunc224::KB512 ... bench: 1,610,892 ns/iter (+/- 46,941)
test Sha512Trunc224::KB64 ... bench: 203,527 ns/iter (+/- 6,356)
test Sha512Trunc224::MB1 ... bench: 3,745,131 ns/iter (+/- 86,707)
test Sha512Trunc256::B0 ... bench: 913 ns/iter (+/- 38)
test Sha512Trunc256::B512 ... bench: 2,712 ns/iter (+/- 102)
test Sha512Trunc256::KB1 ... bench: 4,107 ns/iter (+/- 251)
test Sha512Trunc256::KB16 ... bench: 51,254 ns/iter (+/- 3,333)
test Sha512Trunc256::KB2 ... bench: 7,547 ns/iter (+/- 228)
test Sha512Trunc256::KB4 ... bench: 13,721 ns/iter (+/- 530)
test Sha512Trunc256::KB512 ... bench: 1,610,615 ns/iter (+/- 40,984)
test Sha512Trunc256::KB64 ... bench: 205,138 ns/iter (+/- 10,216)
test Sha512Trunc256::MB1 ... bench: 3,777,564 ns/iter (+/- 132,223)
after
test Md2::B0 ... bench: 2,774 ns/iter (+/- 123)
test Md2::B512 ... bench: 47,558 ns/iter (+/- 174)
test Md2::KB1 ... bench: 92,541 ns/iter (+/- 2,406)
test Md2::KB16 ... bench: 1,424,698 ns/iter (+/- 30,673)
test Md2::KB2 ... bench: 179,058 ns/iter (+/- 7,451)
test Md2::KB4 ... bench: 357,313 ns/iter (+/- 20,401)
test Md2::KB512 ... bench: 45,346,729 ns/iter (+/- 738,835)
test Md2::KB64 ... bench: 5,661,714 ns/iter (+/- 117,424)
test Md2::MB1 ... bench: 90,679,424 ns/iter (+/- 1,039,302)
test Md4::B0 ... bench: 166 ns/iter (+/- 7)
test Md4::B512 ... bench: 721 ns/iter (+/- 23)
test Md4::KB1 ... bench: 1,322 ns/iter (+/- 30)
test Md4::KB16 ... bench: 18,171 ns/iter (+/- 1,550)
test Md4::KB2 ... bench: 2,438 ns/iter (+/- 93)
test Md4::KB4 ... bench: 4,630 ns/iter (+/- 135)
test Md4::KB512 ... bench: 567,422 ns/iter (+/- 26,529)
test Md4::KB64 ... bench: 70,786 ns/iter (+/- 3,073)
test Md4::MB1 ... bench: 1,135,563 ns/iter (+/- 34,854)
test Md5::B0 ... bench: 196 ns/iter (+/- 1)
test Md5::B512 ... bench: 966 ns/iter (+/- 71)
test Md5::KB1 ... bench: 1,804 ns/iter (+/- 70)
test Md5::KB16 ... bench: 25,002 ns/iter (+/- 999)
test Md5::KB2 ... bench: 3,301 ns/iter (+/- 90)
test Md5::KB4 ... bench: 6,354 ns/iter (+/- 269)
test Md5::KB512 ... bench: 780,372 ns/iter (+/- 30,552)
test Md5::KB64 ... bench: 97,543 ns/iter (+/- 2,190)
test Md5::MB1 ... bench: 1,586,582 ns/iter (+/- 83,608)
test Ripemd128::B0 ... bench: 339 ns/iter (+/- 26)
test Ripemd128::B512 ... bench: 2,333 ns/iter (+/- 93)
test Ripemd128::KB1 ... bench: 4,279 ns/iter (+/- 123)
test Ripemd128::KB16 ... bench: 62,366 ns/iter (+/- 2,540)
test Ripemd128::KB2 ... bench: 8,145 ns/iter (+/- 278)
test Ripemd128::KB4 ... bench: 15,879 ns/iter (+/- 735)
test Ripemd128::KB512 ... bench: 1,979,599 ns/iter (+/- 86,193)
test Ripemd128::KB64 ... bench: 248,744 ns/iter (+/- 8,199)
test Ripemd128::MB1 ... bench: 3,962,677 ns/iter (+/- 116,775)
test Ripemd160::B0 ... bench: 522 ns/iter (+/- 24)
test Ripemd160::B512 ... bench: 3,669 ns/iter (+/- 226)
test Ripemd160::KB1 ... bench: 6,713 ns/iter (+/- 157)
test Ripemd160::KB16 ... bench: 97,248 ns/iter (+/- 6,141)
test Ripemd160::KB2 ... bench: 12,716 ns/iter (+/- 481)
test Ripemd160::KB4 ... bench: 25,173 ns/iter (+/- 696)
test Ripemd160::KB512 ... bench: 3,086,538 ns/iter (+/- 75,664)
test Ripemd160::KB64 ... bench: 389,572 ns/iter (+/- 29,769)
test Ripemd160::MB1 ... bench: 6,202,184 ns/iter (+/- 177,020)
test Ripemd256::B0 ... bench: 474 ns/iter (+/- 23)
test Ripemd256::B512 ... bench: 2,945 ns/iter (+/- 136)
test Ripemd256::KB1 ... bench: 5,312 ns/iter (+/- 203)
test Ripemd256::KB16 ... bench: 75,117 ns/iter (+/- 3,324)
test Ripemd256::KB2 ... bench: 9,874 ns/iter (+/- 339)
test Ripemd256::KB4 ... bench: 19,117 ns/iter (+/- 1,163)
test Ripemd256::KB512 ... bench: 2,400,165 ns/iter (+/- 85,947)
test Ripemd256::KB64 ... bench: 303,779 ns/iter (+/- 19,802)
test Ripemd256::MB1 ... bench: 4,816,570 ns/iter (+/- 121,853)
test Ripemd320::B0 ... bench: 685 ns/iter (+/- 22)
test Ripemd320::B512 ... bench: 4,161 ns/iter (+/- 83)
test Ripemd320::KB1 ... bench: 7,645 ns/iter (+/- 314)
test Ripemd320::KB16 ... bench: 110,827 ns/iter (+/- 2,598)
test Ripemd320::KB2 ... bench: 14,411 ns/iter (+/- 659)
test Ripemd320::KB4 ... bench: 28,228 ns/iter (+/- 1,046)
test Ripemd320::KB512 ... bench: 3,530,631 ns/iter (+/- 77,491)
test Ripemd320::KB64 ... bench: 447,662 ns/iter (+/- 24,758)
test Ripemd320::MB1 ... bench: 7,095,309 ns/iter (+/- 196,941)
test Sha0::B0 ... bench: 292 ns/iter (+/- 17)
test Sha0::B512 ... bench: 1,609 ns/iter (+/- 69)
test Sha0::KB1 ... bench: 2,835 ns/iter (+/- 80)
test Sha0::KB16 ... bench: 39,674 ns/iter (+/- 2,048)
test Sha0::KB2 ... bench: 5,317 ns/iter (+/- 152)
test Sha0::KB4 ... bench: 10,124 ns/iter (+/- 548)
test Sha0::KB512 ... bench: 1,254,684 ns/iter (+/- 37,736)
test Sha0::KB64 ... bench: 157,383 ns/iter (+/- 5,747)
test Sha0::MB1 ... bench: 2,520,607 ns/iter (+/- 98,632)
test Sha1::B0 ... bench: 330 ns/iter (+/- 23)
test Sha1::B512 ... bench: 1,729 ns/iter (+/- 50)
test Sha1::KB1 ... bench: 3,053 ns/iter (+/- 131)
test Sha1::KB16 ... bench: 42,141 ns/iter (+/- 1,792)
test Sha1::KB2 ... bench: 5,646 ns/iter (+/- 281)
test Sha1::KB4 ... bench: 10,834 ns/iter (+/- 594)
test Sha1::KB512 ... bench: 1,341,071 ns/iter (+/- 35,257)
test Sha1::KB64 ... bench: 167,056 ns/iter (+/- 10,650)
test Sha1::MB1 ... bench: 2,682,492 ns/iter (+/- 56,062)
test Sha224::B0 ... bench: 458 ns/iter (+/- 13)
test Sha224::B512 ... bench: 2,632 ns/iter (+/- 190)
test Sha224::KB1 ... bench: 4,729 ns/iter (+/- 138)
test Sha224::KB16 ... bench: 67,173 ns/iter (+/- 3,781)
test Sha224::KB2 ... bench: 8,868 ns/iter (+/- 198)
test Sha224::KB4 ... bench: 17,197 ns/iter (+/- 1,544)
test Sha224::KB512 ... bench: 2,140,858 ns/iter (+/- 71,477)
test Sha224::KB64 ... bench: 266,880 ns/iter (+/- 9,324)
test Sha224::MB1 ... bench: 4,281,111 ns/iter (+/- 110,050)
test Sha256::B0 ... bench: 450 ns/iter (+/- 14)
test Sha256::B512 ... bench: 2,611 ns/iter (+/- 103)
test Sha256::KB1 ... bench: 4,783 ns/iter (+/- 162)
test Sha256::KB16 ... bench: 66,946 ns/iter (+/- 2,589)
test Sha256::KB2 ... bench: 8,866 ns/iter (+/- 477)
test Sha256::KB4 ... bench: 17,328 ns/iter (+/- 597)
test Sha256::KB512 ... bench: 2,140,442 ns/iter (+/- 54,634)
test Sha256::KB64 ... bench: 269,995 ns/iter (+/- 15,766)
test Sha256::MB1 ... bench: 4,301,261 ns/iter (+/- 103,133)
test Sha384::B0 ... bench: 571 ns/iter (+/- 26)
test Sha384::B512 ... bench: 1,950 ns/iter (+/- 37)
test Sha384::KB1 ... bench: 3,301 ns/iter (+/- 114)
test Sha384::KB16 ... bench: 44,621 ns/iter (+/- 2,519)
test Sha384::KB2 ... bench: 6,033 ns/iter (+/- 292)
test Sha384::KB4 ... bench: 11,373 ns/iter (+/- 349)
test Sha384::KB512 ... bench: 1,390,245 ns/iter (+/- 43,597)
test Sha384::KB64 ... bench: 173,209 ns/iter (+/- 7,281)
test Sha384::MB1 ... bench: 2,779,280 ns/iter (+/- 68,040)
test Sha512::B0 ... bench: 601 ns/iter (+/- 23)
test Sha512::B512 ... bench: 2,185 ns/iter (+/- 99)
test Sha512::KB1 ... bench: 3,331 ns/iter (+/- 131)
test Sha512::KB16 ... bench: 43,715 ns/iter (+/- 1,123)
test Sha512::KB2 ... bench: 6,026 ns/iter (+/- 328)
test Sha512::KB4 ... bench: 11,596 ns/iter (+/- 739)
test Sha512::KB512 ... bench: 1,413,869 ns/iter (+/- 34,007)
test Sha512::KB64 ... bench: 175,924 ns/iter (+/- 9,365)
test Sha512::MB1 ... bench: 2,789,213 ns/iter (+/- 57,169)
test Sha512Trunc224::B0 ... bench: 472 ns/iter (+/- 24)
test Sha512Trunc224::B512 ... bench: 1,862 ns/iter (+/- 50)
test Sha512Trunc224::KB1 ... bench: 3,211 ns/iter (+/- 57)
test Sha512Trunc224::KB16 ... bench: 43,665 ns/iter (+/- 1,338)
test Sha512Trunc224::KB2 ... bench: 5,966 ns/iter (+/- 351)
test Sha512Trunc224::KB4 ... bench: 11,534 ns/iter (+/- 209)
test Sha512Trunc224::KB512 ... bench: 1,406,118 ns/iter (+/- 75,939)
test Sha512Trunc224::KB64 ... bench: 176,651 ns/iter (+/- 5,618)
test Sha512Trunc224::MB1 ... bench: 2,789,474 ns/iter (+/- 59,151)
test Sha512Trunc256::B0 ... bench: 514 ns/iter (+/- 19)
test Sha512Trunc256::B512 ... bench: 1,886 ns/iter (+/- 108)
test Sha512Trunc256::KB1 ... bench: 3,287 ns/iter (+/- 110)
test Sha512Trunc256::KB16 ... bench: 43,958 ns/iter (+/- 1,385)
test Sha512Trunc256::KB2 ... bench: 5,955 ns/iter (+/- 274)
test Sha512Trunc256::KB4 ... bench: 11,327 ns/iter (+/- 361)
test Sha512Trunc256::KB512 ... bench: 1,402,502 ns/iter (+/- 57,460)
test Sha512Trunc256::KB64 ... bench: 175,749 ns/iter (+/- 5,378)
test Sha512Trunc256::MB1 ... bench: 2,788,547 ns/iter (+/- 64,270)