Jelajahi Sumber

speedup parsing multi-segment readOnlySequence

Jan Tattermusch 5 tahun lalu
induk
melakukan
b2d5ceb1f7
1 mengubah file dengan 5 tambahan dan 5 penghapusan
  1. 5 5
      csharp/src/Google.Protobuf/SegmentedBufferHelper.cs

+ 5 - 5
csharp/src/Google.Protobuf/SegmentedBufferHelper.cs

@@ -79,12 +79,12 @@ namespace Google.Protobuf
             }
             else
             {
-                // TODO(jtattermusch): try to initialize the first segment, otherwise the
-                // very first read will result in slowpath (because the first thing to do is to
-                // refill to get the first buffer segment)
-                firstSpan = default;
-                instance.totalLength = (int) sequence.Length;
                 instance.readOnlySequenceEnumerator = sequence.GetEnumerator();
+                instance.totalLength = (int) sequence.Length;
+
+                // set firstSpan to the first segment
+                instance.readOnlySequenceEnumerator.MoveNext();
+                firstSpan = instance.readOnlySequenceEnumerator.Current.Span;
             }
         }