TGViewer
Анонимный дотнетчик Анонимный дотнетчик @dotnetter · 1.81K subscribers
Post #9595 491
[Перевод] Утечки памяти, связанные с неверным использованием API Microsoft.Extensions.Configuration в .NET под Windows

В этом посте описана одна из причин, по которой растёт расход памяти и возникают утечки, что при работе под Windows может приводить к исключениям OutOfMemoryException. Проблема может возникать после того, как приложение обновится с версии .NET 6 или ниже до .NET 7 или выше, но также встречается и в новых или необновлённых приложениях.
Мне не раз приходилось сталкиваться с данной конкретной проблемой, когда я работал в техподдержке. Поскольку я отвечаю, в основном, за веб-составляющую приложений, мне такие вещи встречались только в приложениях ASP.NET. Однако, эта проблема характерна не только для ASP.NET Core и может произойти в любом приложении под .NET.
Она может возникать в .NET 6 и ниже, но чётче проявляется и лучше просматривается в .NET 7 и выше. Дело в том, что в этих версиях .NET иначе, чем прежде, обращается с блоками памяти, отводимыми под кучи для сборщиков мусора. Разница такова: в .NET 6 и ниже (а также в .NET Framework) используются сравнительно крупные сегменты, для каждой кучи — свои. А в .NET 7+ для этой цели применятся более мелкие регионы, доступные для повторного использования. Если вы хотите подробнее почитать о сегментах и регионах, посмотрите пост от Маони Стивенс, которая занимается архитектурой сборщика мусора в .NET: https://devblogs.microsoft.com/dotnet/put-a-dpad-on-that-gc/
Кроме того, по-видимому, именно такие утечки возникают только в Windows. Я прихожу к такому выводу, изучив релевантный исходный код .NET. Правда, не поленитесь пролистать эту статью даже в случае, если ваше приложение хостится на какой-нибудь другой платформе.
Читать далее

https://habr.com/ru/articles/912578/?utm_campaign=912578&utm_source=habrahabr&utm_medium=rss
Microsoft News Put a DPAD on that GC! Say what? Yes, there's a new feature called DPAD for regions – regions is what we are currently working on in .NET 6 to convert segments to. In this blog post I will first give some introduction to regions then talk about the DPAD feature.
More from @dotnetter
  1. Oct 14, 2025.NET and .NET Framework October 2025 servicing releases updates A recap of the latest serv…
  2. Oct 14, 2025Announcing .NET 10 Release Candidate 2 .NET 10 Release Candidate 2 focuses on final qualit…
  3. Oct 14, 2025Announcing the .NET Security Group Learn how to join the .NET Security Group for early acc…
  4. Oct 14, 2025Выбор языка программирования для создание более трудных проектов: как сделать правильный в…
  5. Oct 13, 2025Система резервации на 600 заказов в секунду без буферизации и другой дичи Я прочитал стать…
  6. Oct 13, 2025Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика Введение Вс…
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 →