TGViewer
Библиотека собеса по C# | вопросы с собеседований Библиотека собеса по C# | вопросы с собеседований @csharp_interview_lib · 5.65K subscribers
Post #834 1.74K
В ASP.NET Core сервисе растёт хвост задержек и паузы GC. Профилировщик показывает миллионы аллокаций byte[]/MemoryStream в сети/серилизации на горячем пути. Как перепроектировать ввод/вывод, чтобы сделать его low-alloc/почти zero-copy, и какие подводные камни учесть?

Перейти на System.IO.Pipelines (PipeReader/PipeWriter) и парсинг через ReadOnlySequence<byte>/SequenceReader<byte>; писать в IBufferWriter<byte> вместо конкатенаций и ToArray(). Временные буферы брать из ArrayPool<byte>/MemoryPool<byte> (IMemoryOwner<byte>) и возвращать в finally. Не удерживать Span<T> через await (переносить как Memory<T>), уважать backpressure (AdvanceTo, FlushAsync), ограничивать параллелизм. Минимизировать boxing/LINQ на горячем пути, использовать source-generated сериализацию. Проверить ETW/EventCounters и бенчмарки, валидировать, что аллокации и tail-latency упали.

Библиотека собеса по С#
  • ❤ 7
More from @csharp_interview_lib
  1. Sep 15, 2026Когда выбирать struct/record struct вместо class? Для маленьких, неизменяемых и часто копи…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 7, 2026⚡️⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного:…
  4. Aug 4, 2026Долгоживущий .NET-сервис постепенно “распухает” по памяти без явных LOH-пиков. В дампе вид…
  5. Aug 4, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
  6. Aug 4, 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 →