Last active
June 12, 2020 15:48
-
-
Save jtattermusch/0115b65b5eb22a9119a9458c0d69763d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
WriteMessagesBenchmark | |
====================== | |
BEFORE | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 631.95 ns | 1.4252 ns | 1.1127 ns | 0.0381 | - | - | 168 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 374.11 ns | 1.8610 ns | 1.7407 ns | 0.0110 | - | - | 48 B | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 229.21 ns | 0.9716 ns | 0.9089 ns | 0.0350 | - | - | 152 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 148.87 ns | 0.1996 ns | 0.1667 ns | 0.0110 | - | - | 48 B | | |
| EmptyMessage_ToByteArray | ? | 21.69 ns | 0.1998 ns | 0.1560 ns | 0.0166 | - | - | 72 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 12.19 ns | 0.1880 ns | 0.1759 ns | 0.0111 | - | - | 48 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,141.92 ns | 121.4397 ns | 113.5947 ns | 0.0076 | - | - | 48 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 2,134.74 ns | 13.1636 ns | 11.6692 ns | 0.0076 | - | - | 48 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 61,214.58 ns | 477.3865 ns | 446.5477 ns | - | - | - | 48 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 21,130.95 ns | 159.0414 ns | 140.9861 ns | - | - | - | 48 B | | |
AFTER | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 650.69 ns | 1.9214 ns | 1.7033 ns | 0.0420 | - | - | 184 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 396.51 ns | 1.6271 ns | 1.5220 ns | 0.0148 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteToSpan | ? | 368.66 ns | 1.6349 ns | 1.5293 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 372.00 ns | 1.7960 ns | 1.4022 ns | 0.0386 | - | - | 168 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 294.08 ns | 1.9526 ns | 1.8265 ns | 0.0148 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteToSpan | ? | 267.34 ns | 0.4635 ns | 0.3871 ns | - | - | - | - | | |
| EmptyMessage_ToByteArray | ? | 44.79 ns | 0.2830 ns | 0.2647 ns | 0.0203 | - | - | 88 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 34.10 ns | 0.0687 ns | 0.0643 ns | 0.0148 | - | - | 64 B | | |
| EmptyMessage_WriteToSpan | ? | 20.09 ns | 0.0877 ns | 0.0777 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,143.68 ns | 43.7328 ns | 38.7680 ns | 0.0076 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 6,164.20 ns | 30.4917 ns | 27.0301 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 3,512.97 ns | 12.8595 ns | 12.0288 ns | 0.0114 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 3,243.55 ns | 15.7413 ns | 13.9542 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 62,380.37 ns | 410.8572 ns | 384.3161 ns | - | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 60,428.32 ns | 277.5547 ns | 231.7708 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 35,248.04 ns | 159.7366 ns | 124.7118 ns | - | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 32,503.54 ns | 130.9447 ns | 122.4857 ns | - | - | - | - | | |
AFTER 2 | |
no-inline Varint | |
no-inline fixedInt | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 705.44 ns | 1.0748 ns | 0.8391 ns | 0.0420 | - | - | 184 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 438.70 ns | 1.8359 ns | 1.7173 ns | 0.0148 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteToSpan | ? | 414.64 ns | 1.6975 ns | 1.5048 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 299.16 ns | 0.3611 ns | 0.3201 ns | 0.0386 | - | - | 168 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 218.87 ns | 0.8826 ns | 0.8256 ns | 0.0148 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteToSpan | ? | 201.91 ns | 1.1531 ns | 1.0786 ns | - | - | - | - | | |
| EmptyMessage_ToByteArray | ? | 43.91 ns | 0.1069 ns | 0.0893 ns | 0.0203 | - | - | 88 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 35.41 ns | 0.0912 ns | 0.0853 ns | 0.0148 | - | - | 64 B | | |
| EmptyMessage_WriteToSpan | ? | 20.10 ns | 0.1045 ns | 0.0977 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,633.94 ns | 23.9488 ns | 22.4017 ns | 0.0076 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 6,384.34 ns | 26.1508 ns | 24.4615 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 2,742.13 ns | 10.4236 ns | 9.7503 ns | 0.0114 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 2,597.06 ns | 2.2042 ns | 1.8406 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 66,333.69 ns | 331.5210 ns | 293.8847 ns | - | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 64,743.87 ns | 388.1227 ns | 363.0502 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 27,124.24 ns | 101.7553 ns | 95.1820 ns | - | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 25,780.86 ns | 88.2858 ns | 82.5826 ns | - | - | - | - | | |
AFTER 3 | |
no-inline varint | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 694.61 ns | 2.2295 ns | 1.9764 ns | 0.0420 | - | - | 184 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 432.87 ns | 1.8086 ns | 1.6918 ns | 0.0148 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteToSpan | ? | 408.82 ns | 2.5108 ns | 2.2257 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 364.75 ns | 2.4289 ns | 2.1531 ns | 0.0386 | - | - | 168 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 280.60 ns | 1.1490 ns | 1.0186 ns | 0.0148 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteToSpan | ? | 267.36 ns | 1.2153 ns | 1.0149 ns | - | - | - | - | | |
| EmptyMessage_ToByteArray | ? | 43.77 ns | 0.1368 ns | 0.1068 ns | 0.0203 | - | - | 88 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 35.47 ns | 0.1434 ns | 0.1341 ns | 0.0148 | - | - | 64 B | | |
| EmptyMessage_WriteToSpan | ? | 20.12 ns | 0.1101 ns | 0.0919 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,430.51 ns | 29.4592 ns | 27.5561 ns | 0.0076 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 6,412.21 ns | 24.4808 ns | 22.8994 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 3,379.47 ns | 11.6922 ns | 10.9369 ns | 0.0114 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 3,238.49 ns | 12.6863 ns | 10.5936 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 64,640.52 ns | 367.3435 ns | 343.6134 ns | - | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 64,287.05 ns | 331.3515 ns | 293.7345 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 33,777.95 ns | 120.9726 ns | 107.2390 ns | - | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 32,530.61 ns | 220.6950 ns | 184.2903 ns | - | - | - | - | | |
AFTER 4 | |
no-inline varint | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 659.02 ns | 2.9097 ns | 2.7217 ns | 0.0420 | - | - | 184 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 395.29 ns | 1.9158 ns | 1.5998 ns | 0.0148 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteToSpan | ? | 375.65 ns | 1.7355 ns | 1.5384 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 321.14 ns | 0.4798 ns | 0.4006 ns | 0.0386 | - | - | 168 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 241.42 ns | 1.7834 ns | 1.5810 ns | 0.0148 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteToSpan | ? | 220.50 ns | 0.9386 ns | 0.8320 ns | - | - | - | - | | |
| EmptyMessage_ToByteArray | ? | 43.96 ns | 0.2163 ns | 0.1688 ns | 0.0203 | - | - | 88 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 35.67 ns | 0.0616 ns | 0.0546 ns | 0.0148 | - | - | 64 B | | |
| EmptyMessage_WriteToSpan | ? | 20.13 ns | 0.0970 ns | 0.0860 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,277.69 ns | 29.5858 ns | 26.2270 ns | 0.0076 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 6,065.40 ns | 12.7225 ns | 10.6238 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 2,949.21 ns | 7.4108 ns | 6.5695 ns | 0.0114 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 2,820.45 ns | 11.6041 ns | 9.6899 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 63,866.47 ns | 332.1800 ns | 310.7214 ns | - | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 62,805.46 ns | 331.8709 ns | 310.4323 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 29,242.05 ns | 89.6671 ns | 83.8746 ns | - | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 28,088.34 ns | 116.2886 ns | 108.7764 ns | - | - | - | - | | |
AFTER 5 | |
even fewer aggresive inlines | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 671.52 ns | 2.2028 ns | 2.0605 ns | 0.0420 | - | - | 184 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 407.79 ns | 1.6299 ns | 1.5246 ns | 0.0148 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteToSpan | ? | 390.88 ns | 1.2928 ns | 1.1461 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 314.58 ns | 0.8290 ns | 0.7754 ns | 0.0386 | - | - | 168 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 234.19 ns | 1.4005 ns | 1.3101 ns | 0.0148 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteToSpan | ? | 215.09 ns | 0.7535 ns | 0.7048 ns | - | - | - | - | | |
| EmptyMessage_ToByteArray | ? | 44.02 ns | 0.0667 ns | 0.0624 ns | 0.0203 | - | - | 88 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 35.49 ns | 0.3020 ns | 0.2522 ns | 0.0148 | - | - | 64 B | | |
| EmptyMessage_WriteToSpan | ? | 20.01 ns | 0.0949 ns | 0.0888 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,423.72 ns | 30.0215 ns | 28.0821 ns | 0.0076 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 6,231.03 ns | 34.4796 ns | 32.2522 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 2,853.42 ns | 8.7815 ns | 8.2142 ns | 0.0114 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 2,692.64 ns | 2.7710 ns | 2.3139 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 64,368.54 ns | 687.6452 ns | 643.2237 ns | - | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 62,005.35 ns | 489.3248 ns | 457.7147 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 28,194.85 ns | 100.0278 ns | 93.5660 ns | - | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 26,976.59 ns | 96.2450 ns | 90.0276 ns | - | - | - | - | | |
AFTER 6 | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | messageCount | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|--------------------------------------------------------------------- |------------- |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| ManyWrapperFieldsMessage_ToByteArray | ? | 694.09 ns | 3.3059 ns | 2.9306 ns | 0.0420 | - | - | 184 B | | |
| ManyWrapperFieldsMessage_WriteToCodedOutputStream | ? | 432.27 ns | 2.3747 ns | 2.1051 ns | 0.0148 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteToSpan | ? | 409.50 ns | 2.1330 ns | 1.9952 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_ToByteArray | ? | 297.40 ns | 1.2172 ns | 1.0164 ns | 0.0386 | - | - | 168 B | | |
| ManyPrimitiveFieldsMessage_WriteToCodedOutputStream | ? | 218.74 ns | 0.9156 ns | 0.8564 ns | 0.0148 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteToSpan | ? | 200.31 ns | 0.7385 ns | 0.6908 ns | - | - | - | - | | |
| EmptyMessage_ToByteArray | ? | 43.89 ns | 0.0784 ns | 0.0612 ns | 0.0203 | - | - | 88 B | | |
| EmptyMessage_WriteToCodedOutputStream | ? | 35.38 ns | 0.0635 ns | 0.0563 ns | 0.0148 | - | - | 64 B | | |
| EmptyMessage_WriteToSpan | ? | 20.10 ns | 0.0695 ns | 0.0616 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 6,429.00 ns | 33.7908 ns | 29.9547 ns | 0.0076 | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 6,469.08 ns | 26.3803 ns | 22.0287 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 10 | 2,729.02 ns | 7.6427 ns | 7.1490 ns | 0.0114 | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 10 | 2,585.23 ns | 8.8748 ns | 8.3015 ns | - | - | - | - | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 64,857.99 ns | 339.9626 ns | 301.3680 ns | - | - | - | 64 B | | |
| ManyWrapperFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 64,775.08 ns | 285.7427 ns | 267.2839 ns | - | - | - | - | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToCodedOutputStream | 100 | 27,169.55 ns | 111.1761 ns | 98.5547 ns | - | - | - | 64 B | | |
| ManyPrimitiveFieldsMessage_WriteDelimitedMessagesToSpan | 100 | 25,827.09 ns | 105.3008 ns | 93.3464 ns | - | - | - | - | | |
AFTER 6 | |
Primitives | |
BenchmarkDotNet=v0.11.4, OS=debian rodete | |
Intel Xeon W-2135 CPU 3.70GHz, 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.1.301 | |
[Host] : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
DefaultJob : .NET Core 2.1.16 (CoreCLR 4.6.28516.03, CoreFX 4.6.28516.10), 64bit RyuJIT | |
| Method | BytesToWrite | encodedSize | Mean | Error | StdDev | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op | | |
|-------------------------------------- |------------- |------------ |-------------:|------------:|------------:|------------:|------------:|------------:|--------------------:| | |
| WriteRawVarint32_CodedOutputStream | 10080 | 1 | 29,214.5 ns | 144.8651 ns | 113.1012 ns | - | - | - | 64 B | | |
| WriteRawVarint32_WriteContext | 10080 | 1 | 33,620.2 ns | 138.4644 ns | 129.5197 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 1 | 37,047.4 ns | 61.5313 ns | 51.3814 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 1 | 31,251.8 ns | 258.7711 ns | 242.0546 ns | - | - | - | - | | |
| WriteString_CodedOutputStream | 10080 | 1 | 177,444.9 ns | 786.5254 ns | 697.2343 ns | - | - | - | 64 B | | |
| WriteString_WriteContext | 10080 | 1 | 181,243.6 ns | 152.8213 ns | 119.3128 ns | - | - | - | - | | |
| WriteBytes_CodedOutputStream | 10080 | 1 | 215,341.7 ns | 751.5175 ns | 702.9699 ns | - | - | - | 64 B | | |
| WriteBytes_WriteContext | 10080 | 1 | 210,417.5 ns | 783.0076 ns | 611.3209 ns | - | - | - | - | | |
| WriteRawVarint32_CodedOutputStream | 10080 | 2 | 23,522.0 ns | 120.1829 ns | 100.3581 ns | - | - | - | 64 B | | |
| WriteRawVarint32_WriteContext | 10080 | 2 | 18,564.1 ns | 148.2530 ns | 138.6760 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 2 | 22,436.5 ns | 166.4595 ns | 147.5620 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 2 | 20,432.1 ns | 73.4711 ns | 68.7249 ns | - | - | - | - | | |
| WriteRawVarint32_CodedOutputStream | 10080 | 3 | 19,568.0 ns | 46.5115 ns | 43.5069 ns | - | - | - | 64 B | | |
| WriteRawVarint32_WriteContext | 10080 | 3 | 17,607.3 ns | 48.6527 ns | 45.5098 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 3 | 21,053.7 ns | 20.2564 ns | 16.9150 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 3 | 17,069.0 ns | 86.0665 ns | 80.5067 ns | - | - | - | - | | |
| WriteRawVarint32_CodedOutputStream | 10080 | 4 | 17,604.8 ns | 109.3414 ns | 102.2781 ns | - | - | - | 64 B | | |
| WriteRawVarint32_WriteContext | 10080 | 4 | 16,828.4 ns | 73.7020 ns | 65.3349 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 4 | 18,261.2 ns | 94.7543 ns | 88.6332 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 4 | 15,701.7 ns | 122.2417 ns | 114.3450 ns | - | - | - | - | | |
| WriteString_CodedOutputStream | 10080 | 4 | 58,810.7 ns | 314.0158 ns | 293.7305 ns | - | - | - | 64 B | | |
| WriteString_WriteContext | 10080 | 4 | 59,357.5 ns | 285.7101 ns | 267.2534 ns | - | - | - | - | | |
| WriteNonAsciiString_CodedOutputStream | 10080 | 4 | 80,599.8 ns | 296.2012 ns | 262.5746 ns | - | - | - | 64 B | | |
| WriteNonAsciiString_WriteContext | 10080 | 4 | 81,470.1 ns | 289.6988 ns | 270.9844 ns | - | - | - | - | | |
| WriteBytes_CodedOutputStream | 10080 | 4 | 54,903.1 ns | 147.4865 ns | 137.9589 ns | - | - | - | 64 B | | |
| WriteBytes_WriteContext | 10080 | 4 | 53,954.2 ns | 199.8591 ns | 177.1699 ns | - | - | - | - | | |
| WriteRawVarint32_CodedOutputStream | 10080 | 5 | 16,923.3 ns | 111.5598 ns | 104.3531 ns | - | - | - | 64 B | | |
| WriteRawVarint32_WriteContext | 10080 | 5 | 16,675.3 ns | 62.6333 ns | 58.5873 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 5 | 18,084.8 ns | 53.8660 ns | 50.3863 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 5 | 14,822.5 ns | 71.3556 ns | 66.7461 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 6 | 17,747.1 ns | 20.3528 ns | 18.0422 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 6 | 14,372.9 ns | 71.9195 ns | 67.2736 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 7 | 17,266.4 ns | 54.0875 ns | 50.5935 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 7 | 14,028.4 ns | 69.7302 ns | 65.2257 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 8 | 17,321.1 ns | 9.9686 ns | 8.8369 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 8 | 13,843.1 ns | 73.8391 ns | 69.0691 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 9 | 16,902.8 ns | 64.6378 ns | 60.4623 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 9 | 13,649.2 ns | 72.0484 ns | 67.3941 ns | - | - | - | - | | |
| WriteRawVarint64_CodedOutputStream | 10080 | 10 | 17,006.3 ns | 97.2806 ns | 90.9964 ns | - | - | - | 64 B | | |
| WriteRawVarint64_WriteContext | 10080 | 10 | 14,275.0 ns | 59.3585 ns | 52.6198 ns | - | - | - | - | | |
| WriteString_CodedOutputStream | 10080 | 10 | 32,759.9 ns | 182.0413 ns | 161.3749 ns | - | - | - | 64 B | | |
| WriteString_WriteContext | 10080 | 10 | 31,407.7 ns | 232.7208 ns | 217.6872 ns | - | - | - | - | | |
| WriteNonAsciiString_CodedOutputStream | 10080 | 10 | 50,376.0 ns | 711.6319 ns | 630.8432 ns | - | - | - | 64 B | | |
| WriteNonAsciiString_WriteContext | 10080 | 10 | 51,101.4 ns | 220.1264 ns | 205.9064 ns | - | - | - | - | | |
| WriteBytes_CodedOutputStream | 10080 | 10 | 22,083.4 ns | 60.5528 ns | 56.6411 ns | - | - | - | 64 B | | |
| WriteBytes_WriteContext | 10080 | 10 | 21,413.4 ns | 85.4500 ns | 75.7492 ns | - | - | - | - | | |
| WriteString_CodedOutputStream | 10080 | 105 | 13,731.7 ns | 43.2930 ns | 40.4963 ns | - | - | - | 64 B | | |
| WriteString_WriteContext | 10080 | 105 | 10,530.0 ns | 20.7141 ns | 18.3625 ns | - | - | - | - | | |
| WriteNonAsciiString_CodedOutputStream | 10080 | 105 | 19,927.6 ns | 40.9500 ns | 38.3047 ns | - | - | - | 64 B | | |
| WriteNonAsciiString_WriteContext | 10080 | 105 | 19,829.6 ns | 71.9427 ns | 67.2952 ns | - | - | - | - | | |
| WriteBytes_CodedOutputStream | 10080 | 105 | 2,253.7 ns | 7.6118 ns | 7.1201 ns | 0.0114 | - | - | 64 B | | |
| WriteBytes_WriteContext | 10080 | 105 | 2,199.1 ns | 6.1791 ns | 5.7799 ns | - | - | - | - | | |
| WriteString_CodedOutputStream | 10080 | 10080 | 11,052.7 ns | 36.7292 ns | 34.3565 ns | - | - | - | 64 B | | |
| WriteString_WriteContext | 10080 | 10080 | 7,834.2 ns | 50.0915 ns | 46.8556 ns | - | - | - | - | | |
| WriteNonAsciiString_CodedOutputStream | 10080 | 10080 | 17,106.6 ns | 35.5642 ns | 33.2668 ns | - | - | - | 64 B | | |
| WriteNonAsciiString_WriteContext | 10080 | 10080 | 17,087.4 ns | 59.8954 ns | 56.0262 ns | - | - | - | - | | |
| WriteBytes_CodedOutputStream | 10080 | 10080 | 126.8 ns | 0.9330 ns | 0.8727 ns | 0.0148 | - | - | 64 B | | |
| WriteBytes_WriteContext | 10080 | 10080 | 122.7 ns | 2.4490 ns | 4.3531 ns | - | - | - | - | | |
| WriteFixed32_CodedOutputStream | 10080 | ? | 10,616.2 ns | 69.6670 ns | 65.1665 ns | - | - | - | 64 B | | |
| WriteFixed32_WriteContext | 10080 | ? | 7,165.3 ns | 34.3775 ns | 30.4747 ns | - | - | - | - | | |
| WriteFixed64_CodedOutputStream | 10080 | ? | 14,109.2 ns | 43.6778 ns | 40.8562 ns | - | - | - | 64 B | | |
| WriteFixed64_WriteContext | 10080 | ? | 14,520.3 ns | 35.6471 ns | 33.3443 ns | - | - | - | - | | |
| WriteRawFloat_CodedOutputStream | 10080 | ? | 4,874.5 ns | 5.2332 ns | 4.8951 ns | 0.0076 | - | - | 64 B | | |
| WriteRawFloat_WriteContext | 10080 | ? | 5,350.2 ns | 14.7174 ns | 13.0466 ns | - | - | - | - | | |
| WriteRawDouble_CodedOutputStream | 10080 | ? | 15,946.8 ns | 45.9893 ns | 43.0184 ns | - | - | - | 64 B | | |
| WriteRawDouble_WriteContext | 10080 | ? | 15,409.1 ns | 73.4858 ns | 65.1432 ns | - | - | - | - | | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment