Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

ZLinq: LINQ-Bibliothek ohne Speicherallokation

Die neu veröffentlichte ZLinq von Yoshifumi Kawai verspricht eine effiziente LINQ-Bibliothek ohne Speicherallokationen.
© EMGenie
Yoshifumi Kawai hat die Bibliothek ZLinq veröffentlicht, die für .NET konzipiert ist und verspricht, das Problem der Speicherallokationen beim Arbeiten mit LINQ zu lösen. Basierend auf Strukturen und Generics erreicht ZLinq null Allokationen, was eine bedeutende Verbesserung gegenüber bestehenden Implementierungen darstellt. Die Bibliothek bietet daher nicht nur LINQ-Features für Standard-Typen, sondern unterstützt auch LINQ für Span<T>, SIMD sowie Baumstrukturen wie Dateisysteme und JSON-Objekte.
Mit mehr als 3000 GitHub-Stars seit der Veröffentlichung, hebt sich ZLinq durch seine vollständige Abdeckung aller Methoden und Overloads in .NET 10 hervor, inklusive neuer Features wie Shuffle, RightJoin und LeftJoin. Ziel war es, eine praktikable Lösung zu schaffen, die auch in Bezug auf Leistung und Benutzerfreundlichkeit überzeugt. Während viele frühere Implementierungen durch einen extremen Anstieg der Assembly-Größe oder mangelnde Operatorabdeckung gekennzeichnet waren, verfolgt ZLinq das Ziel, nicht nur Allokationen zu reduzieren, sondern auch eine verbesserte Leistung durch Optimierungen wie SIMD (Single Instruction, Multiple Data) zu erreichen.
Die Nutzung ist denkbar einfach: Ein einfacher Aufruf von AsValueEnumerable() erlaubt die nahtlose Integration in bestehende LINQ-Abfragen. Ein Beispiel für die Verwendung könnte folgendermaßen aussehen:
using ZLinq;
var seq = source.AsValueEnumerable() // nur diese Zeile hinzufügen
  .Where(x => x % 2 == 0)
  .Select(x => x * 3);
  foreach (var item in seq) {
    // Verarbeitung
  } 

Zusätzlich enthält ZLinq einen Source Generator, der die Möglichkeit bietet, die Integration zu automatisieren, ohne dass der Aufruf von AsValueEnumerable() erforderlich ist.
Leistungsbenchmarks zeigen, dass ZLinq in vielen praktischen Szenarien bessere Leistungen erbringt als die traditionellen LINQ-Implementierungen, insbesondere bei mehrfachen Methodenaufrufen. Beispielsweise zeigen Tests, dass ZLinq, auch wenn es strukturell nicht in der Lage ist, in bestimmten Fällen zu gewinnen, in den meisten praktischen Anwendungsfällen die Nase vorn hat.
Zusätzlich zu seinen technischen Stärken setzt sich Yoshifumi Kawai auch dafür ein, den Open-Source-Standort in der .NET-Community zu verbessern; er teilt seine Erfahrungen über die Entwicklung von ZLinq und appelliert an die Community, Verständnis für gelegentliche Verzögerungen bei der Wartung von Open-Source-Projekten aufzubringen. Kawai plant, langfristig an der Verbesserung und Weiterentwicklung von ZLinq zu arbeiten und hofft auf eine positive Resonanz innerhalb der Entwicklergemeinschaft.

Linq-Bibliothek, die keine Speicherallokationen benötigt.
.NET Stack

Neueste Beiträge

SignalRC mit ReactFlow – alles im Fluss - Der DDC-Truck, Teil 9
ReactFlow verwandelt ein abstraktes Signalverarbeitungsproblem in etwas, das man buchstäblich sehen und anfassen kann. Dabei ist die Signalverarbeitungskette vollständig datengetrieben.
13 Minuten
19. Mär 2026
00:00
DDD, Schulden und KI: Was Entwickler:innen heute wirklich wissen müssen - Interview
Domain-Driven Design klingt in der Theorie überzeugend – in der Praxis schleichen sich aber immer wieder die gleichen Fehler ein. Dr. Carola Lilienthal erklärt, wo DDD-Projekte stolpern, wie man technische Schulden unter Kontrolle hält und welche Fähigkeiten Tech Leads im KI-Zeitalter brauchen.
24. Mär 2026
Mit Entitäten strukturierte Informationen extrahieren - Low Code/No Code und KI mit Copilot Studio, Teil 2
Entitäten in Copilot Studio strukturieren Benutzereingaben als typisierte, wiederverwendbare Informationen. Sie erkennen und extrahieren aus unstrukturierter Sprache klar definierte Daten für Dialoglogik und zur Übergabe an Aktionen (Power Automate, Konnektoren/Plug-ins).
7 Minuten
23. Mär 2026

Das könnte Dich auch interessieren

Elektronische Schaltkreise im Browser simulieren - Simulation
Statt mit Steckfeld oder Lötkolben kann man auf dieser Website Schaltungen per Drag and Drop zusammenstellen und deren Verhalten testen.
2 Minuten
26. Jul 2018
C#-.NET-Apps mit WinUI 3 - Komponentenbasierte Apps mit Fluent/FAST, Teil 3
Microsoft macht mit WinUI 3 ein natives User-Experience-Framework für Windows verfügbar, dessen Komponenten auf dem Microsoft-eigenen Design-System Fluent 2 basieren.
23 Minuten
13. Mai 2024
UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 Minuten
16. Jun 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige