🚀 Zero allocation LINQ 🚀
Уровень материала: 📢 #news
Не секрет, что LINQ в .NET имеет проблему с аллокацией памяти, что ограничивает его применение в часто исполняемой или высоконагруженной логике.
Ребутяшки из Cysharp, известные по UniTask и R3, 2 недели назад создали репозиторий с ZLinq — это их NonAlloc struct-based имплементация Linq.
👨💻 Пакет уже совместим с .NET 9, .NET 10, Unity (от 2022.3.12f1) и Godot (от 4.0.0).
В Unity и Godot предусмотрены методы расширения для GameObject, Transform и Node2D.
Аналогичные методы расширения реализованы и для Json, что может быть полезно для систем миграций/патчинга пользовательских игровых данных.
🎥 Узнал про ZLinq из видео с канала git-amend. Там рассмотрены примеры использования и интеграции в Unity. Также там можно подглядеть полезные методики для профилирования.
💡 Мне нравятся и UniTask, и R3. Поэтому пока для меня ZLinq, построенный на тех же идеях, выглядит как многообещающий инструмент для оптимизации LINQ-запросов, который позволит снизить нагрузку на GC и упростить работу с деревьями объектов.
⚠️ Библиотека пока находится в стадии preview, но в не-продуктовой среде я уже начну с ней знакомиться. ———————————— #unity #godot #gamedev #development #dotnet #csharp #tool #linq #optimization #allocation #геймдев #разработка #оптимизация #инструмент #рекомендация #видео