Start Debugging

memory

6 Beiträge

Zwei Collections in C# im Gleichschritt durchlaufen, ohne Heap-Allokationen

Enumerable.Zip allokiert 144 bis 208 Bytes pro Aufruf und läuft etwa 10x langsamer als eine einfache Schleife. Für Arrays und Listen ist eine for-Schleife über zwei auf dieselbe Länge zugeschnittene Spans allokationsfrei und die schnellste Variante; wer foreach-Syntax möchte, kommt mit einem kleinen ref struct Zip-Enumerator auf weniger als 25 % Abstand. Gemessen mit .NET 10.0.10 und .NET 11 RC 3.