TGViewer
.NET epeshk blog .NET epeshk blog @epeshkblog · 2.67K subscribers
Post #142 3.88K
string.Intern

Сергей Тепляков написал статью о перформанс-ловушке при использовании метода string.Intern.

- string.Intern в .NET слишком медленный из-за блокировки, которая берётся при доступе к кэшу интернированных строк
- в NativeAOT проблема исправлена — чтение из кэша происходит без блокировки, используется реализация кэша аналогичная старому Hashtable
- самый простой способ сделать интернирование быстрее на всех платформах — использовать ConcurrentDictionary вместо string.Intern

====

Хэш-таблица, позволяющая чтение без блокировок также есть в моей библиотеке ConcurrencyToolkit, под названием SingleWriterDictionary.

@epeshkblog | Поддержать канал
█░░░░░░░░░░░░ 29 / 300
Dissecting the Code String Interning - To Use or Not to Use? A Performance Question I recently join a new team and one of the projects was having a high memory footprint issues. There are a few mitigations put in place and one of them was to de-duplicate strings by using string interning.
  • 👍 19
  • 🔥 11
More from @epeshkblog
  1. Sep 23, 2026На какие доклады я пойду на DotNext 2026. Обзор программы В этом году конференция почти на…
  2. Sep 22, 2026Приходите на доклад https://dotnext.ru/talks/20010542-modularity-without-microservices-in-…
  3. Sep 22, 2026В этом году не выступаю, надо отдохнуть, и переосмыслить разработку после всеобщего успеха…
  4. Sep 22, 2026#видеозаписи До нового DotNext осталось совсем немного, а по дороге на конференцию — можно…
  5. Sep 9, 2026.NET и Владимир: отличный повод совместить митап и выходные в городе с историей Офлайн-мер…
  6. Aug 3, 2026LLM оказались упорнее людей 2 недели назад LLM впервые справилась с математической задачей…
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 →