TGViewer
Григорий Дядиченко Григорий Дядиченко @dev_game · 2.66K subscribers
Post #1588 1.53K
LINQ без аллокаций
https://dtf.ru/gamedev/3671537-optimizatsiya-linq-v-dotnet-s-pomoshchyu-zlinq-bez-allokatsii-pamyati?from=rss

Охота на ведьм продолжается. На самом деле забавно, что это у меня вызвало ностальгию. Когда-то давным давно меня не взяли в гейминсайт (и как показала история жалеть не о чем). А не взяли меня, так как лид на собесе меня замучал какими-то узкими кейсами по памяти. Типа вопроса "чем отличается string.Concat от "+"" в строках. И убеждал что там много лишних аллокаций. На самом деле очень сильно зависит от контекста и платформ. В общем случае шарповый сахар оптимизирует себя лучше, чем вы напишете.

Я в те времена имел слабое представление о том что такое куча, а что такое стек. Но уже работал больше года разрабом и программировал сутками. В те времена я даже на выходных на работу ездил чтобы делать свой пет проект, так как денег на VR шлем и хороший комп у меня не было. Откуда они у парня с Волгограда только закончившего универ. Поэтому в офисе я был 7 дней в неделю и с практикой всё было неплохо. Но теорию я знал весьма посредственно. Собственно благодаря тому собесу я разобрался в теме. Причём объяснить работу сборщика мусора и памяти без тонких нюансов я смогу кому угодно часа за 4. Зачем так мучать этим на собесах для меня всегда была загадкой. Я тоже конечно по приколу кошмарил людей вопросами про вертексные параметры, про то за что в Unity отвечает UV3 в стандарт шейдере и так далее. Но эти вопросы никогда ничего не решали. Чисто любопытство на сколько человек углублялся. Ладно, Остапа понесло - не суть.

Так вот, к чему я это. Битва с мелкими аллокациями вещь конечно достойная была, до Unity 5.6 если не ошибусь. А после этого в Unity появилась малая куча и тащить подобные либы стало относительно бессмысленно. Могу быть не прав. Но я с фризами из-за кучи аллокаций с объектами меньше 65к байт не сталкивался оооочень давно.

Это очень узкий кейс когда может пригодится NonAlloc LINQ. Да, в Unity мы обделены всеми прелястями .Net (а он оптимизирует себя просто космически, в особенности весь сахар). Но на интеграцию подобной либы, которую ещё нужно дебажить, поддерживать и у неё будет неочевидное поведение - я бы время не тратил.

#новости
  • 🔥 14
More from @dev_game
  1. Oct 3, 2026Мой новый проект https://t.me/Mespoker_bot Поймал меня значит как-то Паша за покером и ска…
  2. Oct 1, 2026🤔 Как продвинуть игру? Я обещал. Я сделал. Получился большой документ с шагами и действия…
  3. Sep 29, 2026И тут продублирую раз прилетело несколько вопросов. Доступ к дневнику можно будет получить…
  4. Sep 29, 2026Да, чет не анонсировал. Остановил сбор. Ну в целом донаты показывают классические для меня…
  5. Sep 25, 2026Meta VR Glasses Посмотрел кратко о чём речь. Вспомнил скупой слезой свой концепт. Будем по…
  6. Sep 23, 2026Чисто магия, что я теперь самостоятельно могу сделать такой пак + ролик к нему :) И мне нр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →