Commit 09da1d19 authored by Ubuntu's avatar Ubuntu

run go test stat

parent 18c0e034
goos: linux
goarch: amd64
pkg: github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark
cpu: Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
BenchmarkRepeated
BenchmarkRepeated/input_size_200
BenchmarkRepeated/input_size_200-8 4929 235116 ns/op 206949 B/op 1030 allocs/op
BenchmarkRepeated/input_size_200-8 4830 234183 ns/op 206662 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4711 233030 ns/op 206653 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4869 228755 ns/op 206667 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4488 235602 ns/op 206670 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4882 229878 ns/op 206710 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4630 226779 ns/op 206761 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4944 227934 ns/op 206772 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4906 224685 ns/op 206762 B/op 1029 allocs/op
BenchmarkRepeated/input_size_200-8 4951 236266 ns/op 206762 B/op 1029 allocs/op
BenchmarkRepeated/input_size_500
BenchmarkRepeated/input_size_500-8 3091 374999 ns/op 294332 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 2893 379479 ns/op 294335 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 3188 386679 ns/op 294314 B/op 1651 allocs/op
BenchmarkRepeated/input_size_500-8 3027 379964 ns/op 294324 B/op 1651 allocs/op
BenchmarkRepeated/input_size_500-8 3048 372795 ns/op 294329 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 3046 379493 ns/op 294339 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 3038 382503 ns/op 294328 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 3037 376858 ns/op 294335 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 3004 380237 ns/op 294328 B/op 1652 allocs/op
BenchmarkRepeated/input_size_500-8 2665 387946 ns/op 294324 B/op 1651 allocs/op
BenchmarkRepeated/input_size_1000
BenchmarkRepeated/input_size_1000-8 2158 599942 ns/op 427907 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1861 598981 ns/op 427945 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 2187 609124 ns/op 427933 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1862 608089 ns/op 427930 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1953 594150 ns/op 427919 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 2050 614077 ns/op 427925 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 2122 601281 ns/op 427922 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1942 605563 ns/op 427901 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1982 621440 ns/op 427927 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1993 604775 ns/op 427929 B/op 2652 allocs/op
BenchmarkRepeated/input_size_2000
BenchmarkRepeated/input_size_2000-8 1212 1045963 ns/op 695557 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1122 1033986 ns/op 695548 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 890 1164471 ns/op 695602 B/op 4671 allocs/op
BenchmarkRepeated/input_size_2000-8 1056 1044273 ns/op 695547 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1017 1057157 ns/op 695579 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 997 1066324 ns/op 695569 B/op 4671 allocs/op
BenchmarkRepeated/input_size_2000-8 1009 1072943 ns/op 695560 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1035 1042608 ns/op 695551 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1014 1047702 ns/op 695587 B/op 4671 allocs/op
BenchmarkRepeated/input_size_2000-8 1024 1067921 ns/op 695569 B/op 4670 allocs/op
BenchmarkRepeated/input_size_5000
BenchmarkRepeated/input_size_5000-8 456 2432478 ns/op 1514832 B/op 10709 allocs/op
BenchmarkRepeated/input_size_5000-8 458 2412893 ns/op 1514755 B/op 10709 allocs/op
BenchmarkRepeated/input_size_5000-8 454 2410962 ns/op 1514762 B/op 10709 allocs/op
BenchmarkRepeated/input_size_5000-8 459 2455172 ns/op 1514748 B/op 10708 allocs/op
BenchmarkRepeated/input_size_5000-8 444 2392530 ns/op 1514851 B/op 10710 allocs/op
BenchmarkRepeated/input_size_5000-8 448 2391625 ns/op 1514765 B/op 10708 allocs/op
BenchmarkRepeated/input_size_5000-8 435 2411386 ns/op 1514774 B/op 10709 allocs/op
BenchmarkRepeated/input_size_5000-8 434 2448030 ns/op 1514753 B/op 10708 allocs/op
BenchmarkRepeated/input_size_5000-8 465 2490208 ns/op 1514724 B/op 10707 allocs/op
BenchmarkRepeated/input_size_5000-8 451 2456829 ns/op 1514754 B/op 10708 allocs/op
PASS
ok github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark 68.757s
goos: linux
goarch: amd64
pkg: github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark
cpu: Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
BenchmarkRepeated
BenchmarkRepeated/input_size_200
BenchmarkRepeated/input_size_200-8 4800 240295 ns/op 234338 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4477 228557 ns/op 234048 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4873 234021 ns/op 234065 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4750 237758 ns/op 234036 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4983 237880 ns/op 234070 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4378 234818 ns/op 234065 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4605 236931 ns/op 234138 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4534 234290 ns/op 234134 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 4399 228892 ns/op 234143 B/op 1031 allocs/op
BenchmarkRepeated/input_size_200-8 5070 251291 ns/op 234162 B/op 1031 allocs/op
BenchmarkRepeated/input_size_500
BenchmarkRepeated/input_size_500-8 2894 391024 ns/op 368036 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2620 394877 ns/op 368055 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2972 409601 ns/op 368063 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 3022 381495 ns/op 368051 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2977 401586 ns/op 368051 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2893 397035 ns/op 368057 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2920 394944 ns/op 368051 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2908 397437 ns/op 368052 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 3144 398814 ns/op 368052 B/op 1650 allocs/op
BenchmarkRepeated/input_size_500-8 2844 389704 ns/op 368058 B/op 1650 allocs/op
BenchmarkRepeated/input_size_1000
BenchmarkRepeated/input_size_1000-8 1966 619236 ns/op 567221 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1772 634561 ns/op 567237 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1627 644023 ns/op 567260 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1990 633309 ns/op 567240 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1881 635927 ns/op 567257 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1878 624802 ns/op 567248 B/op 2652 allocs/op
BenchmarkRepeated/input_size_1000-8 1831 640751 ns/op 567247 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1897 629271 ns/op 567240 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 2004 635052 ns/op 567233 B/op 2651 allocs/op
BenchmarkRepeated/input_size_1000-8 1892 634583 ns/op 567264 B/op 2652 allocs/op
BenchmarkRepeated/input_size_2000
BenchmarkRepeated/input_size_2000-8 1054 1129774 ns/op 966021 B/op 4672 allocs/op
BenchmarkRepeated/input_size_2000-8 1056 1105827 ns/op 966039 B/op 4672 allocs/op
BenchmarkRepeated/input_size_2000-8 1062 1106964 ns/op 966004 B/op 4671 allocs/op
BenchmarkRepeated/input_size_2000-8 982 1123194 ns/op 966055 B/op 4672 allocs/op
BenchmarkRepeated/input_size_2000-8 913 1134517 ns/op 966065 B/op 4672 allocs/op
BenchmarkRepeated/input_size_2000-8 903 1137445 ns/op 965999 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1056 1098270 ns/op 966036 B/op 4672 allocs/op
BenchmarkRepeated/input_size_2000-8 1063 1094722 ns/op 966031 B/op 4672 allocs/op
BenchmarkRepeated/input_size_2000-8 1057 1103844 ns/op 966023 B/op 4671 allocs/op
BenchmarkRepeated/input_size_2000-8 1059 1130991 ns/op 966033 B/op 4671 allocs/op
BenchmarkRepeated/input_size_5000
BenchmarkRepeated/input_size_5000-8 424 2602839 ns/op 2194991 B/op 10711 allocs/op
BenchmarkRepeated/input_size_5000-8 415 2573331 ns/op 2195034 B/op 10712 allocs/op
BenchmarkRepeated/input_size_5000-8 418 2576632 ns/op 2195144 B/op 10712 allocs/op
BenchmarkRepeated/input_size_5000-8 422 2570710 ns/op 2195015 B/op 10711 allocs/op
BenchmarkRepeated/input_size_5000-8 424 2591119 ns/op 2195089 B/op 10712 allocs/op
BenchmarkRepeated/input_size_5000-8 416 2561439 ns/op 2194942 B/op 10710 allocs/op
BenchmarkRepeated/input_size_5000-8 415 2587212 ns/op 2195055 B/op 10712 allocs/op
BenchmarkRepeated/input_size_5000-8 412 2615874 ns/op 2195041 B/op 10711 allocs/op
BenchmarkRepeated/input_size_5000-8 409 2566280 ns/op 2195019 B/op 10712 allocs/op
BenchmarkRepeated/input_size_5000-8 433 2536897 ns/op 2195070 B/op 10712 allocs/op
PASS
ok github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark 75.824s
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Performance Result Comparison</title>
<style>
.benchstat { border-collapse: collapse; }
.benchstat th:nth-child(1) { text-align: left; }
.benchstat tbody td:nth-child(1n+2):not(.note) { text-align: right; padding: 0em 1em; }
.benchstat tr:not(.configs) th { border-top: 1px solid #666; border-bottom: 1px solid #ccc; }
.benchstat .nodelta { text-align: center !important; }
.benchstat .better td.delta { font-weight: bold; }
.benchstat .worse td.delta { font-weight: bold; color: #c00; }
</style>
</head>
<body>
<table class='benchstat oldnew'>
<tr class='configs'><th><th>RepeatedEthTx.txt<th>RepeatedTxEthAsAny.txt
<tbody>
<tr><th><th colspan='2' class='metric'>time/op<th>delta
<tr class='worse'><td>Repeated/input_size_200-8<td>228µs ± 5%<td>236µs ± 5%<td class='delta'>+3.46%<td class='note'>
<tr class='worse'><td>Repeated/input_size_500-8<td>376µs ± 1%<td>400µs ± 3%<td class='delta'>+6.22%<td class='note'>
<tr class='worse'><td>Repeated/input_size_1000-8<td>612µs ± 2%<td>634µs ± 1%<td class='delta'>+3.63%<td class='note'>
<tr class='worse'><td>Repeated/input_size_2000-8<td>1.06ms ± 1%<td>1.13ms ± 1%<td class='delta'>+6.35%<td class='note'>
<tr class='worse'><td>Repeated/input_size_5000-8<td>2.41ms ± 1%<td>2.64ms ± 3%<td class='delta'>+9.46%<td class='note'>
<tr class='unchanged'><td>[Geo mean]<td>669µs <td>708µs <td class='delta'>+5.80%<td class='note'>
<tr><td>&nbsp;
</tbody>
<tbody>
<tr><th><th colspan='2' class='metric'>alloc/op<th>delta
<tr class='worse'><td>Repeated/input_size_200-8<td>207kB ± 0%<td>234kB ± 0%<td class='delta'>+13.28%<td class='note'>
<tr class='worse'><td>Repeated/input_size_500-8<td>294kB ± 0%<td>368kB ± 0%<td class='delta'>+25.05%<td class='note'>
<tr class='worse'><td>Repeated/input_size_1000-8<td>428kB ± 0%<td>567kB ± 0%<td class='delta'>+32.56%<td class='note'>
<tr class='worse'><td>Repeated/input_size_2000-8<td>696kB ± 0%<td>966kB ± 0%<td class='delta'>+38.89%<td class='note'>
<tr class='worse'><td>Repeated/input_size_5000-8<td>1.51MB ± 0%<td>2.20MB ± 0%<td class='delta'>+44.91%<td class='note'>
<tr class='unchanged'><td>[Geo mean]<td>487kB <td>635kB <td class='delta'>+30.46%<td class='note'>
<tr><td>&nbsp;
</tbody>
<tbody>
<tr><th><th colspan='2' class='metric'>allocs/op<th>delta
<tr class='worse'><td>Repeated/input_size_200-8<td>1.03k ± 0%<td>1.03k ± 0%<td class='delta'>+0.19%<td class='note'>
<tr class='better'><td>Repeated/input_size_500-8<td>1.65k ± 0%<td>1.65k ± 0%<td class='delta'>−0.10%<td class='note'>
<tr class='better'><td>Repeated/input_size_1000-8<td>2.65k ± 0%<td>2.65k ± 0%<td class='delta'>−0.02%<td class='note'>
<tr class='worse'><td>Repeated/input_size_2000-8<td>4.67k ± 0%<td>4.67k ± 0%<td class='delta'>+0.03%<td class='note'>
<tr class='worse'><td>Repeated/input_size_5000-8<td>10.7k ± 0%<td>10.7k ± 0%<td class='delta'>+0.02%<td class='note'>
<tr class='unchanged'><td>[Geo mean]<td>2.96k <td>2.96k <td class='delta'>+0.03%<td class='note'>
<tr><td>&nbsp;
</tbody>
</table>
</body>
</html>
...@@ -2,25 +2,36 @@ goos: linux ...@@ -2,25 +2,36 @@ goos: linux
goarch: amd64 goarch: amd64
pkg: github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark pkg: github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark
cpu: Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz cpu: Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
BenchmarkPrimeNumbers/input_size_100-8 489702 2260 ns/op 504 B/op 6 allocs/op BenchmarkRepeated
BenchmarkPrimeNumbers/input_size_100-8 502465 2256 ns/op 504 B/op 6 allocs/op BenchmarkRepeated/input_size_200
BenchmarkPrimeNumbers/input_size_100-8 503593 2265 ns/op 504 B/op 6 allocs/op BenchmarkRepeated/input_size_200-8 4838 235895 ns/op 206960 B/op 1030 allocs/op
BenchmarkPrimeNumbers/input_size_100-8 497701 2253 ns/op 504 B/op 6 allocs/op BenchmarkRepeated/input_size_200-8 5028 240751 ns/op 206712 B/op 1029 allocs/op
BenchmarkPrimeNumbers/input_size_100-8 500527 2272 ns/op 504 B/op 6 allocs/op BenchmarkRepeated/input_size_200-8 5065 224936 ns/op 206671 B/op 1029 allocs/op
BenchmarkPrimeNumbers/input_size_1000-8 25257 47309 ns/op 4088 B/op 9 allocs/op BenchmarkRepeated/input_size_200-8 4790 224242 ns/op 206669 B/op 1029 allocs/op
BenchmarkPrimeNumbers/input_size_1000-8 25201 47525 ns/op 4088 B/op 9 allocs/op BenchmarkRepeated/input_size_200-8 4849 232470 ns/op 206667 B/op 1029 allocs/op
BenchmarkPrimeNumbers/input_size_1000-8 25087 47352 ns/op 4088 B/op 9 allocs/op BenchmarkRepeated/input_size_500
BenchmarkPrimeNumbers/input_size_1000-8 25311 47245 ns/op 4088 B/op 9 allocs/op BenchmarkRepeated/input_size_500-8 3127 380410 ns/op 294254 B/op 1652 allocs/op
BenchmarkPrimeNumbers/input_size_1000-8 25254 47425 ns/op 4088 B/op 9 allocs/op BenchmarkRepeated/input_size_500-8 2966 374246 ns/op 294329 B/op 1652 allocs/op
BenchmarkPrimeNumbers/input_size_74382-8 74 15787618 ns/op 259320 B/op 18 allocs/op BenchmarkRepeated/input_size_500-8 3009 393651 ns/op 294321 B/op 1651 allocs/op
BenchmarkPrimeNumbers/input_size_74382-8 75 15795189 ns/op 259320 B/op 18 allocs/op BenchmarkRepeated/input_size_500-8 3063 372750 ns/op 294320 B/op 1651 allocs/op
BenchmarkPrimeNumbers/input_size_74382-8 75 15791397 ns/op 259320 B/op 18 allocs/op BenchmarkRepeated/input_size_500-8 2985 393548 ns/op 294337 B/op 1652 allocs/op
BenchmarkPrimeNumbers/input_size_74382-8 74 15800313 ns/op 259320 B/op 18 allocs/op BenchmarkRepeated/input_size_1000
BenchmarkPrimeNumbers/input_size_74382-8 75 15783902 ns/op 259320 B/op 18 allocs/op BenchmarkRepeated/input_size_1000-8 1988 591392 ns/op 427929 B/op 2652 allocs/op
BenchmarkPrimeNumbers/input_size_382399-8 7 149816095 ns/op 1160443 B/op 23 allocs/op BenchmarkRepeated/input_size_1000-8 1899 612673 ns/op 427931 B/op 2652 allocs/op
BenchmarkPrimeNumbers/input_size_382399-8 7 149867261 ns/op 1160441 B/op 23 allocs/op BenchmarkRepeated/input_size_1000-8 1996 607685 ns/op 427922 B/op 2652 allocs/op
BenchmarkPrimeNumbers/input_size_382399-8 7 150263752 ns/op 1160443 B/op 23 allocs/op BenchmarkRepeated/input_size_1000-8 2022 607354 ns/op 427935 B/op 2652 allocs/op
BenchmarkPrimeNumbers/input_size_382399-8 7 149953671 ns/op 1160443 B/op 23 allocs/op BenchmarkRepeated/input_size_1000-8 2078 605480 ns/op 427925 B/op 2652 allocs/op
BenchmarkPrimeNumbers/input_size_382399-8 7 150343783 ns/op 1160441 B/op 23 allocs/op BenchmarkRepeated/input_size_2000
BenchmarkRepeated/input_size_2000-8 1226 1069362 ns/op 695546 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1147 1052716 ns/op 695544 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1077 1068582 ns/op 695582 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1087 1057335 ns/op 695547 B/op 4670 allocs/op
BenchmarkRepeated/input_size_2000-8 1106 1045020 ns/op 695558 B/op 4670 allocs/op
BenchmarkRepeated/input_size_5000
BenchmarkRepeated/input_size_5000-8 444 2444132 ns/op 1514766 B/op 10709 allocs/op
BenchmarkRepeated/input_size_5000-8 442 2406409 ns/op 1514738 B/op 10708 allocs/op
BenchmarkRepeated/input_size_5000-8 435 2440909 ns/op 1514581 B/op 10705 allocs/op
BenchmarkRepeated/input_size_5000-8 458 2390721 ns/op 1514734 B/op 10708 allocs/op
BenchmarkRepeated/input_size_5000-8 447 2439328 ns/op 1514725 B/op 10709 allocs/op
PASS PASS
ok github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark 26.152s ok github.com/CaduceusMetaverseProtocol/metaprotocol/benchmark 34.716s
...@@ -14,6 +14,7 @@ import ( ...@@ -14,6 +14,7 @@ import (
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/credentials/insecure"
"google.golang.org/protobuf/types/known/anypb"
) )
var tableTx = []struct { var tableTx = []struct {
...@@ -109,10 +110,106 @@ func RepeatedEthTx(txl int, b *testing.B) { ...@@ -109,10 +110,106 @@ func RepeatedEthTx(txl int, b *testing.B) {
}) })
} }
func RepeatedTxEthAsAny(txl int, b *testing.B) {
// onceFunc := func() {
local, _ := crypto.HexToECDSA("FD5CC6F5E7E2805E920AC5DC83D5AF1106F9C92F0C04F9D5E1FD4261B4B4464A")
publicKey := local.Public()
publicKeyECDSA, _ := publicKey.(*ecdsa.PublicKey)
fromAddr := crypto.PubkeyToAddress(*publicKeyECDSA)
remote, _ := crypto.GenerateKey()
var err error
tx, err := pricedTransaction(crypto.PubkeyToAddress(remote.PublicKey), 0, 100000, big.NewInt(1), local)
if err != nil {
b.Fatal(err)
}
//}
// once.Do(onceFunc)
b.ResetTimer()
// The loop body is executed b.N times total across all goroutines.
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
conn, err := grpc.Dial("127.0.0.1:9006", grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
b.Fatal(err)
}
defer conn.Close()
c := ring.NewRingServiceClient(conn)
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
inner := base.EthTxData{
AccountNonce: tx.Nonce(),
Price: tx.GasPrice().Bytes(),
GasLimit: tx.Gas(),
Payload: tx.Data(),
}
v, r, sigs := tx.RawSignatureValues()
inner.V = v.Bytes()
inner.R = r.Bytes()
inner.S = sigs.Bytes()
inner.Amount = tx.Value().Bytes()
addr := base.Address{Address: tx.To().Bytes()}
inner.Recipient = &addr
inner.From = fromAddr.Bytes()
txs := make([]*base.TransactionEth, 0, txl)
for i := 0; i < txl; i++ {
txs = append(txs, &base.TransactionEth{Tx: &base.EthTx{Inner: &inner}})
}
ethTxAsAny, err := anypb.New(&base.RepeatedEthTx{Txs: txs})
res, err := c.SendTxAsAny(ctx, &base.Transaction{Tx: ethTxAsAny})
if err != nil {
b.Fatal(err)
}
_ = res
// if bytes.Compare(tx.Hash().Bytes(), res.TxHash) != 0 {
// b.Fatal(err)
// }
// onceHash.Do(func() {
// b.Logf("response: %x local: %x \n", res.TxHash, tx.Hash().Bytes())
// })
}
})
}
// go test -v -run BenchmarkAnyTxEth -bench BenchmarkRepeated -benchmem -count 5 | tee old.txt
// Small p-values indicate that the two distributions are significantly different.
// If the test indicates that there was no significant change between the two benchmarks (defined as p > 0.05),
// benchstat displays a single ~ instead of the percent change.
func BenchmarkRepeated(b *testing.B) { func BenchmarkRepeated(b *testing.B) {
for _, v := range tableTx { for _, v := range tableTx {
b.Run(fmt.Sprintf("input_size_%d", v.input), func(b *testing.B) { b.Run(fmt.Sprintf("input_size_%d", v.input), func(b *testing.B) {
RepeatedEthTx(v.input, b) //go test -v -run BenchmarkAnyTxEth -bench BenchmarkRepeated -benchmem -count 10 | tee RepeatedEthTx.txt
//RepeatedEthTx(v.input, b)
//go test -v -run BenchmarkAnyTxEth -bench BenchmarkRepeated -benchmem -count 10 | tee RepeatedTxEthAsAny.txt
//benchstat -geomean -delta-test utest -html RepeatedEthTx.txt RepeatedTxEthAsAny.txt
//benchstat -geomean -delta-test ttest -html RepeatedEthTx.txt RepeatedTxEthAsAny.txt
//benchstat -geomean -delta-test none -html RepeatedEthTx.txt RepeatedTxEthAsAny.txt
RepeatedTxEthAsAny(v.input, b)
}) })
} }
} }
......
...@@ -156,6 +156,10 @@ func (*RingServer) SendTxAsAny(ctx context.Context, in *base.Transaction) (*ring ...@@ -156,6 +156,10 @@ func (*RingServer) SendTxAsAny(ctx context.Context, in *base.Transaction) (*ring
return &ring.SendRawTransactionResponse{TxHash: ethTx.Hash().Bytes()}, nil return &ring.SendRawTransactionResponse{TxHash: ethTx.Hash().Bytes()}, nil
case *base.RepeatedEthTx:
return &ring.SendRawTransactionResponse{}, nil
default: default:
return nil, errors.New(fmt.Sprintf("server expected tx type: %T and %T, but actually is %T", base.EthTx{}, base.StdTx{}, msg)) return nil, errors.New(fmt.Sprintf("server expected tx type: %T and %T, but actually is %T", base.EthTx{}, base.StdTx{}, msg))
} }
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Performance Result Comparison</title>
<style>
.benchstat { border-collapse: collapse; }
.benchstat th:nth-child(1) { text-align: left; }
.benchstat tbody td:nth-child(1n+2):not(.note) { text-align: right; padding: 0em 1em; }
.benchstat tr:not(.configs) th { border-top: 1px solid #666; border-bottom: 1px solid #ccc; }
.benchstat .nodelta { text-align: center !important; }
.benchstat .better td.delta { font-weight: bold; }
.benchstat .worse td.delta { font-weight: bold; color: #c00; }
</style>
</head>
<body>
<table class='benchstat oldnew'>
<tr class='configs'><th><th>RepeatedEthTx.txt<th>RepeatedTxEthAsAny.txt
<tbody>
<tr><th><th colspan='2' class='metric'>time/op<th>delta
<tr class='unchanged'><td>Repeated/input_size_200-8<td>228µs ± 5%<td>236µs ± 5%<td class='nodelta'>~<td class='note'>(p=0.108 n=5+5)
<tr class='worse'><td>Repeated/input_size_500-8<td>376µs ± 1%<td>400µs ± 3%<td class='delta'>+6.22%<td class='note'>(p=0.004 n=5+5)
<tr class='worse'><td>Repeated/input_size_1000-8<td>612µs ± 2%<td>634µs ± 1%<td class='delta'>+3.63%<td class='note'>(p=0.001 n=5+5)
<tr class='worse'><td>Repeated/input_size_2000-8<td>1.06ms ± 1%<td>1.13ms ± 1%<td class='delta'>+6.35%<td class='note'>(p=0.000 n=5+5)
<tr class='worse'><td>Repeated/input_size_5000-8<td>2.41ms ± 1%<td>2.64ms ± 3%<td class='delta'>+9.46%<td class='note'>(p=0.000 n=5+5)
<tr class='unchanged'><td>[Geo mean]<td>669µs <td>708µs <td class='delta'>+5.80%<td class='note'>
<tr><td>&nbsp;
</tbody>
<tbody>
<tr><th><th colspan='2' class='metric'>alloc/op<th>delta
<tr class='worse'><td>Repeated/input_size_200-8<td>207kB ± 0%<td>234kB ± 0%<td class='delta'>+13.28%<td class='note'>(p=0.000 n=4+5)
<tr class='worse'><td>Repeated/input_size_500-8<td>294kB ± 0%<td>368kB ± 0%<td class='delta'>+25.05%<td class='note'>(p=0.000 n=5+5)
<tr class='worse'><td>Repeated/input_size_1000-8<td>428kB ± 0%<td>567kB ± 0%<td class='delta'>+32.56%<td class='note'>(p=0.000 n=5+5)
<tr class='worse'><td>Repeated/input_size_2000-8<td>696kB ± 0%<td>966kB ± 0%<td class='delta'>+38.89%<td class='note'>(p=0.000 n=5+5)
<tr class='worse'><td>Repeated/input_size_5000-8<td>1.51MB ± 0%<td>2.20MB ± 0%<td class='delta'>+44.91%<td class='note'>(p=0.000 n=5+5)
<tr class='unchanged'><td>[Geo mean]<td>487kB <td>635kB <td class='delta'>+30.46%<td class='note'>
<tr><td>&nbsp;
</tbody>
<tbody>
<tr><th><th colspan='2' class='metric'>allocs/op<th>delta
<tr class='unchanged'><td>Repeated/input_size_200-8<td>1.03k ± 0%<td>1.03k ± 0%<td class='nodelta'>~<td class='note'>(zero variance)
<tr class='better'><td>Repeated/input_size_500-8<td>1.65k ± 0%<td>1.65k ± 0%<td class='delta'>−0.10%<td class='note'>(p=0.003 n=5+4)
<tr class='unchanged'><td>Repeated/input_size_1000-8<td>2.65k ± 0%<td>2.65k ± 0%<td class='nodelta'>~<td class='note'>(p=0.070 n=5+5)
<tr class='worse'><td>Repeated/input_size_2000-8<td>4.67k ± 0%<td>4.67k ± 0%<td class='delta'>+0.03%<td class='note'>(p=0.003 n=5+5)
<tr class='worse'><td>Repeated/input_size_5000-8<td>10.7k ± 0%<td>10.7k ± 0%<td class='delta'>+0.02%<td class='note'>(p=0.033 n=5+5)
<tr class='unchanged'><td>[Geo mean]<td>2.96k <td>2.96k <td class='delta'>+0.03%<td class='note'>
<tr><td>&nbsp;
</tbody>
</table>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Performance Result Comparison</title>
<style>
.benchstat { border-collapse: collapse; }
.benchstat th:nth-child(1) { text-align: left; }
.benchstat tbody td:nth-child(1n+2):not(.note) { text-align: right; padding: 0em 1em; }
.benchstat tr:not(.configs) th { border-top: 1px solid #666; border-bottom: 1px solid #ccc; }
.benchstat .nodelta { text-align: center !important; }
.benchstat .better td.delta { font-weight: bold; }
.benchstat .worse td.delta { font-weight: bold; color: #c00; }
</style>
</head>
<body>
<table class='benchstat oldnew'>
<tr class='configs'><th><th>RepeatedEthTx.txt<th>RepeatedTxEthAsAny.txt
<tbody>
<tr><th><th colspan='2' class='metric'>time/op<th>delta
<tr class='unchanged'><td>Repeated/input_size_200-8<td>228µs ± 5%<td>236µs ± 5%<td class='nodelta'>~<td class='note'>(p=0.095 n=5+5)
<tr class='worse'><td>Repeated/input_size_500-8<td>376µs ± 1%<td>400µs ± 3%<td class='delta'>+6.22%<td class='note'>(p=0.008 n=5+5)
<tr class='worse'><td>Repeated/input_size_1000-8<td>612µs ± 2%<td>634µs ± 1%<td class='delta'>+3.63%<td class='note'>(p=0.008 n=5+5)
<tr class='worse'><td>Repeated/input_size_2000-8<td>1.06ms ± 1%<td>1.13ms ± 1%<td class='delta'>+6.35%<td class='note'>(p=0.008 n=5+5)
<tr class='worse'><td>Repeated/input_size_5000-8<td>2.41ms ± 1%<td>2.64ms ± 3%<td class='delta'>+9.46%<td class='note'>(p=0.008 n=5+5)
<tr class='unchanged'><td>[Geo mean]<td>669µs <td>708µs <td class='delta'>+5.80%<td class='note'>
<tr><td>&nbsp;
</tbody>
<tbody>
<tr><th><th colspan='2' class='metric'>alloc/op<th>delta
<tr class='worse'><td>Repeated/input_size_200-8<td>207kB ± 0%<td>234kB ± 0%<td class='delta'>+13.28%<td class='note'>(p=0.016 n=4+5)
<tr class='worse'><td>Repeated/input_size_500-8<td>294kB ± 0%<td>368kB ± 0%<td class='delta'>+25.05%<td class='note'>(p=0.008 n=5+5)
<tr class='worse'><td>Repeated/input_size_1000-8<td>428kB ± 0%<td>567kB ± 0%<td class='delta'>+32.56%<td class='note'>(p=0.008 n=5+5)
<tr class='worse'><td>Repeated/input_size_2000-8<td>696kB ± 0%<td>966kB ± 0%<td class='delta'>+38.89%<td class='note'>(p=0.008 n=5+5)
<tr class='worse'><td>Repeated/input_size_5000-8<td>1.51MB ± 0%<td>2.20MB ± 0%<td class='delta'>+44.91%<td class='note'>(p=0.008 n=5+5)
<tr class='unchanged'><td>[Geo mean]<td>487kB <td>635kB <td class='delta'>+30.46%<td class='note'>
<tr><td>&nbsp;
</tbody>
<tbody>
<tr><th><th colspan='2' class='metric'>allocs/op<th>delta
<tr class='worse'><td>Repeated/input_size_200-8<td>1.03k ± 0%<td>1.03k ± 0%<td class='delta'>+0.19%<td class='note'>(p=0.016 n=4+5)
<tr class='better'><td>Repeated/input_size_500-8<td>1.65k ± 0%<td>1.65k ± 0%<td class='delta'>−0.10%<td class='note'>(p=0.000 n=5+4)
<tr class='unchanged'><td>Repeated/input_size_1000-8<td>2.65k ± 0%<td>2.65k ± 0%<td class='nodelta'>~<td class='note'>(p=0.167 n=5+5)
<tr class='worse'><td>Repeated/input_size_2000-8<td>4.67k ± 0%<td>4.67k ± 0%<td class='delta'>+0.03%<td class='note'>(p=0.008 n=5+5)
<tr class='unchanged'><td>Repeated/input_size_5000-8<td>10.7k ± 0%<td>10.7k ± 0%<td class='nodelta'>~<td class='note'>(p=0.071 n=5+5)
<tr class='unchanged'><td>[Geo mean]<td>2.96k <td>2.96k <td class='delta'>+0.03%<td class='note'>
<tr><td>&nbsp;
</tbody>
</table>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment