TGViewer
Developers Community Developers Community @msdevru · 3.05K subscribers
Post #2721 3.63K
ArrayPool<T>: подводные камни.

Автоматическая сборка мусора упрощает разработку, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.

Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.

В этой статье автор расскажет о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.

Подробнее: https://habr.com/ru/articles/723420/
  • 👍 8
More from @msdevru
  1. Dec 12, 2024⚡️ Курс Unity с нуля Урок 10 Циклы в unity 📌 Видео 📌 Полный курс 📌 Новый искусственный…
  2. Dec 9, 2024⚡️ Курс Unity с нуля Урок 9. Система частиц, Аудио клипы, Триггеры ▪Видео ▪Полный курс ▪По…
  3. Nov 12, 2024📹 ⚡️ Unity полный курс с нуля. Урок 8: Контроллер прыжок CollisionEnter ▪Видео ▪Полный ку…
  4. Nov 10, 2024📹 Unity полный курс Урок 7 Как создать Cпавн объектов в Unity ▪️Видео ▪️Полный курс
  5. Nov 9, 2024🌎 Unity с нуля Урок 6 Создаем земную поверхность terrain ▪Видео ▪Полный курс
  6. Nov 7, 2024📹 Unity полный курс Урок 5. Добавление физики и первый скрипт ▪Видео ▪Полный курс
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 →