Jumat, 12 Desember 2014

Benchmarking Go 1.3.3 dengan Go 1.4

Golang 1.4 telah di rilis, mari lihat perbedaan performa antara keduanya. Menggunakan tool autobench, berikut hasil dan langkahnya.


1. Cek versi go dengan perintah : “go version”


2. Buat folder baru
3. Install autobench di folder tersebut dengan menggunakan perintah : “git clone -b autobench-next https://github.com/davecheney/autobench.git



4. Pindah ke folder autobench di dalam folder tersebut dengan perintah : “cd autobench”


5. Benchmark golang 1.3.3 dengan perintah : “make”



dan berikut hasil benchmarking golang 1.3.3 
  
#go1


benchmark old ns/op     new ns/op           delta
BenchmarkBinaryTree17 3906855059 6413597190 64.16%
BenchmarkFannkuch11 2882755396 2833181929 -1.72%
BenchmarkFmtFprintfEmpty 76.3 95.3 24.90%
BenchmarkFmtFprintfString 235 290 23.40%
BenchmarkFmtFprintfInt 179 274 53.07%
BenchmarkFmtFprintfIntInt 288 448 55.56%
BenchmarkFmtFprintfPrefixedInt 270 380 40.74%
BenchmarkFmtFprintfFloat 387 525 35.66%
BenchmarkFmtManyArgs 1171 1800 53.71%
BenchmarkGobDecode 8756607 12970457 48.12%
BenchmarkGobEncode 5075058 10268644 102.34%
BenchmarkGzip 417493052 424972265 1.79%
BenchmarkGunzip 105311496 106031912 0.68%
BenchmarkHTTPClientServer 41098 49495 20.43%
BenchmarkJSONEncode 22040597 24214407 9.86%
BenchmarkJSONDecode 78381886 91302642 16.48%
BenchmarkMandelbrot200 4517904 4521335 0.08%
BenchmarkGoParse 4530563 5384254 18.84%
BenchmarkRegexpMatchEasy0_32 128 158 23.44%
BenchmarkRegexpMatchEasy0_1K 336 372 10.71%
BenchmarkRegexpMatchEasy1_32 107 137 28.04%
BenchmarkRegexpMatchEasy1_1K 866 1215 40.30%
BenchmarkRegexpMatchMedium_32 198 291 46.97%
BenchmarkRegexpMatchMedium_1K 71611 96780 35.15%
BenchmarkRegexpMatchHard_32 3304 5070 53.45%
BenchmarkRegexpMatchHard_1K 108374 158818 46.55%
BenchmarkRevcomp 685970356 665696566 -2.96%
BenchmarkTemplate 105849486 118774149 12.21%
BenchmarkTimeParse 441 450 2.04%
BenchmarkTimeFormat 415 422 1.69%

benchmark old MB/s new MB/s speedup
BenchmarkGobDecode 87.65 59.18 0.68x
BenchmarkGobEncode 151.24 74.75 0.49x
BenchmarkGzip 46.48 45.66 0.98x
BenchmarkGunzip 184.26 183.01 0.99x
BenchmarkJSONEncode 88.04 80.14 0.91x
BenchmarkJSONDecode 24.76 21.25 0.86x
BenchmarkGoParse 12.78 10.76 0.84x
BenchmarkRegexpMatchEasy0_32 248.13 202.08 0.81x
BenchmarkRegexpMatchEasy0_1K 3046.47 2751.76 0.90x
BenchmarkRegexpMatchEasy1_32 298.06 233.26 0.78x
BenchmarkRegexpMatchEasy1_1K 1181.83 842.8 0.71x
BenchmarkRegexpMatchMedium_32 5.03 3.43 0.68x
BenchmarkRegexpMatchMedium_1K 14.3 10.58 0.74x
BenchmarkRegexpMatchHard_32 9.68 6.31 0.65x
BenchmarkRegexpMatchHard_1K 9.45 6.45 0.68x
BenchmarkRevcomp 370.52 381.81 1.03x
BenchmarkTemplate 18.33 16.34 0.89x  

#runtime


benchmark old ns/op new ns/op delta
BenchmarkAppend 47.2 42.6 -9.75%
BenchmarkAppend1Byte 116 108 -6.90%
BenchmarkAppend4Bytes 110 110 0.00%
BenchmarkAppend8Bytes 116 116 0.00%
BenchmarkAppend16Bytes 111 111 0.00%
BenchmarkAppend32Bytes 124 123 -0.81%
BenchmarkAppendSpecialCase 27.4 27 -1.46%
BenchmarkSelectUncontended 211 232 9.95%
BenchmarkSelectContended 214 233 8.88%
BenchmarkSelectNonblock 102 44.7 -56.18%
BenchmarkChanUncontended 59.9 72.2 20.53%
BenchmarkChanContended 59.3 72.2 21.75%
BenchmarkChanSync 139 287 106.47%
BenchmarkChanProdCons0 141 293 107.80%
BenchmarkChanProdCons10 88.2 131 48.53%
BenchmarkChanProdCons100 68.3 84.2 23.28%
BenchmarkChanProdConsWork0 542 699 28.97%
BenchmarkChanProdConsWork10 484 531 9.71%
BenchmarkChanProdConsWork100 463 480 3.67%
BenchmarkChanCreation 168 1211 620.83%
BenchmarkChanSem 58.5 68.4 16.92%
BenchmarkCallClosure 3.9 3.94 1.03%




BenchmarkCallClosure2 26.8 128 377.61%
BenchmarkCallClosure3 28.6 128 347.55%
BenchmarkCallClosure4 28.7 127 342.51%
BenchmarkComplex128DivNormal 19.9 20.2 1.51%
BenchmarkComplex128DivNisNaN 15.1 15.2 0.66%
BenchmarkComplex128DivDisNaN 14.4 14.9 3.47%
BenchmarkComplex128DivNisInf 11.1 14.4 29.73%
BenchmarkComplex128DivDisInf 10.7 14.2 32.71%
BenchmarkConvT2ESmall 10.7 66.7 523.36%
BenchmarkConvT2EUintptr 0.63 139 21963.49%
BenchmarkConvT2ELarge 58 242 317.24%
BenchmarkConvT2ISmall 12.1 68.9 469.42%
BenchmarkConvT2IUintptr 1.1 143 12900.00%
BenchmarkConvT2ILarge 60.3 245 306.30%
BenchmarkConvI2E 4.39 17.9 307.74%
BenchmarkConvI2I 17 30.4 78.82%
BenchmarkAssertE2T 12 9.44 -21.33%
BenchmarkAssertE2TLarge 13.3 8.87 -33.31%
BenchmarkAssertE2I 18.1 29.7 64.09%
BenchmarkAssertI2T 12.6 9.39 -25.48%
BenchmarkAssertI2I 18 29.4 63.33%
BenchmarkAssertI2E 4.73 17.9 278.44%
BenchmarkAssertE2E 0.78 7.8 900.00%
BenchmarkMalloc8 24.4 106 334.43%
BenchmarkMalloc16 37.2 194 421.51%
BenchmarkMallocTypeInfo8 51 146 186.27%
BenchmarkMallocTypeInfo16 54.8 199 263.14%
BenchmarkHashStringSpeed 26.5 22.4 -15.47%
BenchmarkHashInt32Speed 16.4 16.9 3.05%
BenchmarkHashInt64Speed 16.6 15.4 -7.23%
BenchmarkHashStringArraySpeed 74.5 72.6 -2.55%
BenchmarkMegMap 24.2 23.5 -2.89%
BenchmarkMegOneMap 15.7 16 1.91%
BenchmarkMegEqMap 67591 68250 0.97%
BenchmarkMegEmptyMap 4.24 4.75 12.03%
BenchmarkSmallStrMap 22.3 22.5 0.90%
BenchmarkMapStringKeysEight_16 23.7 23.5 -0.84%
BenchmarkMapStringKeysEight_32 22.6 25.1 11.06%
BenchmarkMapStringKeysEight_64 22.5 25.2 12.00%
BenchmarkMapStringKeysEight_1M 22.4 25.1 12.05%
BenchmarkIntMap 22.3 11.5 -48.43%
BenchmarkRepeatedLookupStrMapKey32 40 28.6 -28.50%
BenchmarkRepeatedLookupStrMapKey1M 328689 329420 0.22%
BenchmarkNewEmptyMap 127 524 312.60%
BenchmarkMemmove32 5.55 5.46 -1.62%
BenchmarkMemmove4K 108 109 0.93%
BenchmarkMemmove64K 2621 2631 0.38%
BenchmarkMemmove4M 436288 464340 6.43%
BenchmarkMemmove64M 15009744 15281164 1.81%
BenchmarkFinalizer 1258 1373 9.14%
BenchmarkFinalizerRun 2079 3001 44.35%
BenchmarkStackGrowth 478 476 -0.42%
BenchmarkStackGrowthDeep 64611 64964 0.55%
BenchmarkCreateGoroutines 89.4 183 104.70%
BenchmarkCreateGoroutinesParallel 89.5 180 101.12%
BenchmarkMatmult 5.93 11.5 93.93%
BenchmarkIfaceCmp100 117 118 0.85%
BenchmarkIfaceCmpNil100 165 165 0.00%
BenchmarkDefer 49.6 113 127.82%
BenchmarkDefer10 43.6 106 143.12%
BenchmarkDeferMany 2271 177 -92.21%
BenchmarkCompareStringEqual 10.7 6.62 -38.13%
BenchmarkCompareStringIdentical 4.08 3.45 -15.44%
BenchmarkCompareStringSameLength 9.47 6.27 -33.79%
BenchmarkCompareStringDifferentLength 1.06 0.94 -11.32%
BenchmarkCompareStringBigUnaligned 70319 71087 1.09%
BenchmarkCompareStringBig 67750 69039 1.90%

benchmark old MB/s new MB/s speedup
BenchmarkMemmove32 5766.15 5860.07 1.02x
BenchmarkMemmove4K 37914.77 37548.51 0.99x
BenchmarkMemmove64K 24995.25 24904.56 1.00x
BenchmarkMemmove4M 9613.6 9032.82 0.94x
BenchmarkMemmove64M 4471.02 4391.61 0.98x
BenchmarkCompareStringBigUnaligned 14911.67 14750.72 0.99x
BenchmarkCompareStringBig 15477.27 15188.16 0.98x

#http


benchmark old ns/op new ns/op delta
BenchmarkHeaderWriteSubset 877 1039 18.47%
BenchmarkReadRequestChrome 5085 13265 160.87%
BenchmarkReadRequestCurl 2975 7723 159.60%
BenchmarkReadRequestApachebench 3006 7864 161.61%
BenchmarkReadRequestSiege 3753 9840 162.19%
BenchmarkReadRequestWrk 2217 6941 213.08%
BenchmarkClientServer 46287 83322 80.01%
BenchmarkClientServerParallel4 38724 73506 89.82%
BenchmarkClientServerParallel64 40410 77686 92.24%
BenchmarkServer 54277 87082 60.44%
BenchmarkServerFakeConnNoKeepAlive 10615 29366 176.65%
BenchmarkServerFakeConnWithKeepAlive 8191 20134 145.81%
BenchmarkServerFakeConnWithKeepAliveLite 5868 11804 101.16%
BenchmarkServerHandlerTypeLen 7789 17420 123.65%
BenchmarkServerHandlerNoLen 6488 16537 154.89%
BenchmarkServerHandlerNoType 7178 17357 141.81%
BenchmarkServerHandlerNoHeader 5163 11453 121.83%

benchmark old MB/s new MB/s speedup
BenchmarkReadRequestChrome 120.14 46.06 0.38x
BenchmarkReadRequestCurl 26.21 10.1 0.39x
BenchmarkReadRequestApachebench 27.27 10.43 0.38x
BenchmarkReadRequestSiege 40.23 15.35 0.38x
BenchmarkReadRequestWrk 18.04 5.76 0.32x

# floats


benchmark old ns/op new ns/op delta
BenchmarkMinSmall 12.4 12.8 3.23%
BenchmarkMinMed 696 608 -12.64%
BenchmarkMinLarge 66496 62568 -5.91%
BenchmarkMinHuge 10256608 7937416 -22.61%
BenchmarkAddTwoSmall 21.7 19.3 -11.06%
BenchmarkAddFourSmall 42.6 38.3 -10.09%
BenchmarkAddTwoMed 943 885 -6.15%
BenchmarkAddFourMed 2858 2594 -9.24%
BenchmarkAddTwoLarge 97295 91670 -5.78%
BenchmarkAddFourLarge 307718 286300 -6.96%
BenchmarkAddTwoHuge 29286717 29296972 0.04%
BenchmarkAddFourHuge 75534516 100320669 32.81%
BenchmarkLogSumExpSmall   252 229 -9.13%
BenchmarkLogSumExpMed 18732 17772 -5.12%
BenchmarkLogSumExpLarge 1896391 1760364 -7.17%
BenchmarkLogSumExpHuge 189685282 175137956 -7.67%
BenchmarkDotSmall 14.2 15.1 6.34%
BenchmarkDotMed 950 899 -5.37%
BenchmarkDotLarge 92834 84420 -9.06%
BenchmarkDotHuge 


17070734 15635466-8.41%

# cipher


benchmark old ns/op  new ns/op   delta
BenchmarkAESCFBEncrypt 3441 3719 8.08%
BenchmarkAESCFBDecrypt 3661 3916 6.97%
BenchmarkAESOFB 2529 2605 3.01%
BenchmarkAESCTR 2107 2404 14.10%
BenchmarkAESCBCEncrypt 2749 3131 13.90%
BenchmarkAESCBCDecrypt 2665 2891 8.48%

benchmark old MB/s new MB/s speedup
BenchmarkAESCFBEncrypt 297.25 275.03 0.93x
BenchmarkAESCFBDecrypt 279.37 261.23 0.94x
BenchmarkAESOFB 404.35 392.59 0.97x
BenchmarkAESCTR 485.5 425.43 0.88x
BenchmarkAESCBCEncrypt 372.38 326.96 0.88x
BenchmarkAESCBCDecrypt 384.14 354.11 0.92x

#megajson


benchmark old ns/op new ns/op delta
BenchmarkCodeEncoder 11845333 13019682 9.91%
BenchmarkCodeDecoder 41985197 44152203 5.16%




benchmark old MB/s new MB/s speedup
BenchmarkCodeEncoder 163.82 149.04 0.91x
BenchmarkCodeDecoder 46.22 43.95 0.95x

#snappy


benchmark old ns/op new ns/op delta
BenchmarkWordsDecode1e3 2209 2293 3.80%
BenchmarkWordsDecode1e4 31082 30494 -1.89%
BenchmarkWordsDecode1e5 426244 394106 -7.54%
BenchmarkWordsDecode1e6 3952650 3633805 -8.07%
BenchmarkWordsEncode1e3 9015 8263 -8.34%
BenchmarkWordsEncode1e4 72088 66318 -8.00%
BenchmarkWordsEncode1e5 882947 835842 -5.33%
BenchmarkWordsEncode1e6 7365759 6973394 -5.33%




benchmark old       ns/op new ns/op speedup
BenchmarkWordsDecode1e3 452.58 436.04 0.96x
BenchmarkWordsDecode1e4 321.72 327.92 1.02x
BenchmarkWordsDecode1e5 234.61 253.74 1.08x
BenchmarkWordsDecode1e6 252.99 275.19 1.09x
BenchmarkWordsEncode1e3 110.91 121.01 1.09x
BenchmarkWordsEncode1e4 138.72 150.79 1.09x
BenchmarkWordsEncode1e5 113.26 119.64 1.06x
BenchmarkWordsEncode1e6 135.76 143.4 1.06x




































6. Install golang 1.4

    - sudo apt-get install curl git mercurial make binutils bison gcc
    - bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
    - source ~/.gvm/scripts/gvm 
    - gvm listall
    - gvm install go1.4
    - gvm use go1.4
    - go version



7. Buat folder baru yang berbeda dengan sebelumnya




8. Install autobench di folder tersebut dengan menggunakan perintah : “git clone -b autobench-next https://github.com/davecheney/autobench.git




9. Pindah ke folder autobench di dalam folder tersebut dengan perintah : “cd autobench”




10. Benchmark golang 1.3.3 dengan perintah : “make”


                                                                                                                                                                                                            dan berikut hasil benchmarking golang 1.4
#go1


benchmark old ns/op new ns/op delta
BenchmarkBinaryTree17 3878913134 6487700411 67.26%
BenchmarkFannkuch11 2888728488 2844315944 -1.54%
BenchmarkFmtFprintfEmpty 76.8 95.8 24.74%
BenchmarkFmtFprintfString 235 292 24.26%
BenchmarkFmtFprintfInt 179 286 59.78%
BenchmarkFmtFprintfIntInt 288 466 61.81%
BenchmarkFmtFprintfPrefixedInt 271 381 40.59%
BenchmarkFmtFprintfFloat 393 529 34.61%
BenchmarkFmtManyArgs 1178 1797 52.55%
BenchmarkGobDecode 8365651 12892880 54.12%
BenchmarkGobEncode 5159279 10303706 99.71%
BenchmarkGzip 423451866 429989507 1.54%
BenchmarkGunzip 104498082 106142657 1.57%
BenchmarkHTTPClientServer 40945 50181 22.56%
BenchmarkJSONEncode 22159903 22249349 0.40%
BenchmarkJSONDecode 78312400 82342470 5.15%
BenchmarkMandelbrot200 4561676 4092627 -10.28%
BenchmarkGoParse 4619875 4846602 4.91%
BenchmarkRegexpMatchEasy0_32 129 141 9.30%
BenchmarkRegexpMatchEasy0_1K 338 330 -2.37%
BenchmarkRegexpMatchEasy1_32 109 124 13.76%
BenchmarkRegexpMatchEasy1_1K 872 1089 24.89%
BenchmarkRegexpMatchMedium_32 200 260 30.00%
BenchmarkRegexpMatchMedium_1K 74287 87587 17.90%
BenchmarkRegexpMatchHard_32 3284 4516 37.52%
BenchmarkRegexpMatchHard_1K 108192 143446 32.58%
BenchmarkRevcomp 687648187 625496185 -9.04%
BenchmarkTemplate 105642017 106784267 1.08%
BenchmarkTimeParse 459 407 -11.33%
BenchmarkTimeFormat 376 377 0.27%




benchmark old MB/s new MB/s speedup
BenchmarkGobDecode 91.75 59.53 0.65x
BenchmarkGobEncode 148.77 74.49 0.50x
BenchmarkGzip 45.83 45.13 0.98x
BenchmarkGunzip 185.69 182.82 0.98x
BenchmarkJSONEncode 87.57 87.21 1.00x
BenchmarkJSONDecode 24.78 23.57 0.95x
BenchmarkGoParse 12.54 11.95 0.95x
BenchmarkRegexpMatchEasy0_32 247.69 226 0.91x
BenchmarkRegexpMatchEasy0_1K 3021.92 3096.58 1.02x
BenchmarkRegexpMatchEasy1_32 291.6 257.99 0.88x
BenchmarkRegexpMatchEasy1_1K 1173.01 939.48 0.80x
BenchmarkRegexpMatchMedium_32 4.99 3.84 0.77x
BenchmarkRegexpMatchMedium_1K 13.78 11.69 0.85x
BenchmarkRegexpMatchHard_32 9.74 7.08 0.73x
BenchmarkRegexpMatchHard_1K 9.46 7.14 0.75x
BenchmarkRevcomp 369.62 406.34 1.10x
BenchmarkTemplate 18.37 18.17 0.99x



#runtime


benchmark old ns/op new ns/op delta
BenchmarkAppend 47.1 42.8 -9.13%
BenchmarkAppend1Byte 116 109 -6.03%
BenchmarkAppend4Bytes 111 110 -0.90%
BenchmarkAppend8Bytes 116 117 0.86%
BenchmarkAppend16Bytes 111 111 0.00%
BenchmarkAppend32Bytes 124 123 -0.81%
BenchmarkAppendSpecialCase 27.3 27 -1.10%
BenchmarkSelectUncontended 215 235 9.30%
BenchmarkSelectContended 214 233 8.88%
BenchmarkSelectNonblock 102 44.6 -56.27%
BenchmarkChanUncontended 59.7 72 20.60%
BenchmarkChanContended 59.3 71.8 21.08%
BenchmarkChanSync 139 287 106.47%
BenchmarkChanProdCons0 141 292 107.09%
BenchmarkChanProdCons10 86.3 131 51.80%
BenchmarkChanProdCons100 66.8 84.1 25.90%
BenchmarkChanProdConsWork0 538 698 29.74%
BenchmarkChanProdConsWork10 482 529 9.75%
BenchmarkChanProdConsWork100 461 480 4.12%
BenchmarkChanCreation 167 1206 622.16%
BenchmarkChanSem 58.2 68.9 18.38%
BenchmarkCallClosure 3.9 3.94 1.03%
BenchmarkCallClosure1 4.2 4.19 -0.24%
BenchmarkCallClosure2 26.7 115 330.71%
BenchmarkCallClosure3 28.6 116 305.59%
BenchmarkCallClosure4 28.7 116 304.18%
BenchmarkComplex128DivNormal 19.9 20.2 1.51%
BenchmarkComplex128DivNisNaN 15 15.2 1.33%
BenchmarkComplex128DivDisNaN 14.5 14.9 2.76%
BenchmarkComplex128DivNisInf 11 15.4 40.00%
BenchmarkComplex128DivDisInf 10.7 15.1 41.12%
BenchmarkConvT2ESmall 10.7 63.2 490.65%
BenchmarkConvT2EUintptr 0.63 127 20058.73%
BenchmarkConvT2ELarge 57.9 216 273.06%
BenchmarkConvT2ISmall 12 65.8 448.33%
BenchmarkConvT2IUintptr 1.1 130 11718.18%
BenchmarkConvT2ILarge 60.3 220 264.84%
BenchmarkConvI2E 4.4 17.9 306.82%
BenchmarkConvI2I 17 30.5 79.41%
BenchmarkAssertE2T 11.9 9.52 -20.00%
BenchmarkAssertE2TLarge 13.2 7.97 -39.62%
BenchmarkAssertE2I 17.9 26.4 47.49%
BenchmarkAssertI2T 12.6 8.39 -33.41%
BenchmarkAssertI2I 17.9 26.3 46.93%
BenchmarkAssertI2E 4.71 15.9 237.58%
BenchmarkAssertE2E 0.78 6.97 793.59%
BenchmarkMalloc8 24.4 95.7 292.21%
BenchmarkMalloc16 37.2 172 362.37%
BenchmarkMallocTypeInfo8 51 129 152.94%
BenchmarkMallocTypeInfo16 54.9 178 224.23%
BenchmarkHashStringSpeed 26 20.4 -21.54%
BenchmarkHashInt32Speed 16.4 13.6 -17.07%
BenchmarkHashInt64Speed 16.5 13.6 -17.58%
BenchmarkHashStringArraySpeed 71.8 64.5 -10.17%
BenchmarkMegMap 24.1 21.3 -11.62%
BenchmarkMegOneMap 15.5 14.2 -8.39%
BenchmarkMegEqMap 67728 60725 -10.34%
BenchmarkMegEmptyMap 4.22 4.22 0.00%
BenchmarkSmallStrMap 22.2 20.3 -8.56%
BenchmarkMapStringKeysEight_16 23.6 21.2 -10.17%
BenchmarkMapStringKeysEight_32 22.5 22.3 -0.89%
BenchmarkMapStringKeysEight_64 22.6 22.3 -1.33%
BenchmarkMapStringKeysEight_1M 22.6 22.3 -1.33%
BenchmarkIntMap 22.3 10.3 -53.81%
BenchmarkRepeatedLookupStrMapKey32 40.1 25.7 -35.91%
BenchmarkRepeatedLookupStrMapKey1M 329409 293169 -11.00%
BenchmarkNewEmptyMap 126 459 264.29%
BenchmarkMemmove32 5.58 4.98 -10.75%
BenchmarkMemmove4K 108 96.3 -10.83%
BenchmarkMemmove64K 2608 2304 -11.66%
BenchmarkMemmove4M 444110 403389 -9.17%
BenchmarkMemmove64M 15859382 15324636 -3.37%
BenchmarkFinalizer 1265 1217 -3.79%
BenchmarkFinalizerRun 1917 2769 44.44%
BenchmarkStackGrowth 474 426 -10.13%
BenchmarkStackGrowthDeep 64680 58440 -9.65%
BenchmarkCreateGoroutines 88.9 159 78.85%
BenchmarkCreateGoroutinesParallel 89.1 161 80.70%
BenchmarkMatmult 5.91 10.2 72.59%
BenchmarkIfaceCmp100 117 104 -11.11%
BenchmarkIfaceCmpNil100 164 147 -10.37%
BenchmarkDefer 49.7 101 103.22%
BenchmarkDefer10 43.6 94.9 117.66%
BenchmarkDeferMany 2207 157 -92.89%
BenchmarkCompareStringEqual 10.7 6.13 -42.71%
BenchmarkCompareStringIdentical 4.08 3.22 -21.08%
BenchmarkCompareStringSameLength 9.53 5.66 -40.61%
BenchmarkCompareStringDifferentLength 1.07 0.85 -20.56%
BenchmarkCompareStringBigUnaligned 70218 64112 -8.70%
BenchmarkCompareStringBig 67846 61463 -9.41%




benchmark old MB/s new MB/s speedup
BenchmarkMemmove32 5734.98 6422.52 1.12x
BenchmarkMemmove4K 37715.41 42526.68 1.13x
BenchmarkMemmove64K 25123.66 28441.1 1.13x
BenchmarkMemmove4M 9444.29 10397.65 1.10x
BenchmarkMemmove64M 4231.49 4379.15 1.03x
BenchmarkCompareStringBigUnaligned 14933.24 16355.36 1.10x
BenchmarkCompareStringBig 15455.25 17060.24 1.10x





#http


benchmark old ns/op new ns/op delta
BenchmarkHeaderWriteSubset 778 1037 33.29%
BenchmarkReadRequestChrome 4551 13176 189.52%
BenchmarkReadRequestCurl 2696 7981 196.03%
BenchmarkReadRequestApachebench 2639 8081 206.21%
BenchmarkReadRequestSiege 3340 9784 192.93%
BenchmarkReadRequestWrk 1977 6879 247.95%
BenchmarkClientServer 44744 83647 86.95%
BenchmarkClientServerParallel4 41855 74257 77.41%
BenchmarkClientServerParallel64 40236 71075 76.65%
BenchmarkServer 51457 92743 80.23%
BenchmarkServerFakeConnNoKeepAlive 10541 28363 169.07%
BenchmarkServerFakeConnWithKeepAlive 8294 20195 143.49%
BenchmarkServerFakeConnWithKeepAliveLite 5905 11835 100.42%
BenchmarkServerHandlerTypeLen 7308 17179 135.07%
BenchmarkServerHandlerNoLen 6594 16311 147.36%
BenchmarkServerHandlerNoType 7154 16816 135.06%
BenchmarkServerHandlerNoHeader 5344 11318 111.79%




benchmark old MB/s new MB/s speedup
BenchmarkReadRequestChrome 134.24 46.37 0.35x
BenchmarkReadRequestCurl 28.93 9.77 0.34x
BenchmarkReadRequestApachebench 31.07 10.15 0.33x
BenchmarkReadRequestSiege 45.2 15.43 0.34x
BenchmarkReadRequestWrk 20.23 5.81 0.29x



#floats


benchmark old ns/op new ns/op delta
BenchmarkMinSmall 12.7 10.5 -17.32%
BenchmarkMinMed 703 666 -5.26%
BenchmarkMinLarge 67200 67011 -0.28%
BenchmarkMinHuge 8944154 8269571 -7.54%
BenchmarkAddTwoSmall 22 21.9 -0.45%
BenchmarkAddFourSmall 43.4 43.2 -0.46%
BenchmarkAddTwoMed 967 962 -0.52%
BenchmarkAddFourMed 2884 2844 -1.39%
BenchmarkAddTwoLarge 99070 99020 -0.05%
BenchmarkAddFourLarge 298496 298918 0.14%
BenchmarkAddTwoHuge 25613207 30731757 19.98%
BenchmarkAddFourHuge 75660932 80181489 5.97%
BenchmarkLogSumExpSmall 251 251 0.00%
BenchmarkLogSumExpMed 19055 19072 0.09%
BenchmarkLogSumExpLarge 1894496 1896996 0.13%
BenchmarkLogSumExpHuge 191572249 192836011 0.66%
BenchmarkDotSmall 15.1 16.5 9.27%
BenchmarkDotMed 948 958 1.05%
BenchmarkDotLarge 94438 94426 -0.01%
BenchmarkDotHuge 16005284 16292339 1.79%



#cipher


benchmark old ns/op new ns/op delta
BenchmarkAESCFBEncrypt 3808 3861 1.39%
BenchmarkAESCFBDecrypt 4119 4050 -1.68%
BenchmarkAESOFB 2765 2717 -1.74%
BenchmarkAESCTR 2368 2437 2.91%
BenchmarkAESCBCEncrypt 3066 3118 1.70%
BenchmarkAESCBCDecrypt 2951 2987 1.22%




benchmark old ns/op new ns/op speedup
BenchmarkAESCFBEncrypt 268.61 264.95 0.99x
BenchmarkAESCFBDecrypt 248.33 252.53 1.02x
BenchmarkAESOFB 369.95 376.51 1.02x
BenchmarkAESCTR 431.88 419.77 0.97x
BenchmarkAESCBCEncrypt 333.98 328.34 0.98x
BenchmarkAESCBCDecrypt 346.92 342.8 0.99x







#megajson


benchmark old ns/op new ns/op delta
BenchmarkCodeEncoder 12864781 12856656 -0.06%
BenchmarkCodeDecoder 44412014 44511534 0.22%




benchmark old ns/op new ns/op speedup
BenchmarkCodeEncoder 150.84 150.93 1.00x
BenchmarkCodeDecoder 43.69 43.59 1.00x








#snappy


benchmark old ns/op new ns/op delta
BenchmarkWordsDecode1e3 1955 2305 17.90%
BenchmarkWordsDecode1e4 27452 33554 22.23%
BenchmarkWordsDecode1e5 381343 429858 12.72%
BenchmarkWordsDecode1e6 3513560 4008586 14.09%
BenchmarkWordsEncode1e3 8047 8966 11.42%
BenchmarkWordsEncode1e4 67005 73404 9.55%
BenchmarkWordsEncode1e5 815196 898008 10.16%
BenchmarkWordsEncode1e6 6745145 7514770 11.41%




benchmark old ns/op new ns/op speedup
BenchmarkWordsDecode1e3 511.36 433.77 0.85x
BenchmarkWordsDecode1e4 364.27 298.02 0.82x
BenchmarkWordsDecode1e5 262.23 232.63 0.89x
BenchmarkWordsDecode1e6 284.61 249.46 0.88x
BenchmarkWordsEncode1e3 124.26 111.53 0.90x
BenchmarkWordsEncode1e4 149.24 136.23 0.91x
BenchmarkWordsEncode1e5 122.67 111.36 0.91x
BenchmarkWordsEncode1e6 148.25 133.07 0.90x