TGViewer
Библиотека джависта | Java, Spring, Maven, Hibernate Библиотека джависта | Java, Spring, Maven, Hibernate @javaproglib · 22K subscribers
Post #7844 2.67K
🤩 Утечка, которую не видит heap dump

Интересная ловушка: вызываешь string.intern() на динамических строках, приложение падает с OOM, делаешь heap dump — а там всё чисто. Где утечка?

🤩 Суть проблемы

String Pool до Java 7 жил в PermGen, с Java 7 переехал в heap. Казалось бы, проблема решена. Но нет.

Внутри String Pool использует нативную хеш-таблицу StringTable, которая живёт в native memory (вне heap). Когда ты делаешь intern(), в heap создаётся сама строка, но ссылка на неё хранится в нативной StringTable.

🤩 Что происходит

Строки попадают в heap (GC их уберёт), но StringTable в native memory растёт бесконечно. Размер StringTable фиксирован и задаётся -XX:StringTableSize. При переполнении — коллизии, деградация, OOM.

🤩 Как увидеть?


bashjcmd <pid> VM.stringtable


Или Native Memory Tracking:


bash-XX:NativeMemoryTracking=detail
jcmd <pid> VM.native_memory


Ищи раздел Symbol — там StringTable.

⚠️ String Pool — это не только heap. StringTable живёт в native memory, и это классическая офф-хип утечка.

══════ Навигация ══════
ВакансииЗадачиСобесы

🐸 Библиотека джависта
More from @javaproglib
  1. Sep 20, 2026🧠 Почему a.age() - b.age() может сломать сортировку Часто встречается такой Comparator: l…
  2. Sep 19, 2026🤯 Collectors.teeing — две агрегации в одном collect Нужно получить средний возраст и коли…
  3. Sep 18, 2026══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта
  4. Sep 17, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
  5. Sep 17, 2026🧠 Что выведет код? ❤️ [1, 2, 3, 4] 🔥 [2, 4] 👍 [1, 3] 👾 ConcurrentModificationException…
  6. Sep 16, 2026🛠 computeIfAbsent — кэш и группировка без if Нужно положить значение в список по ключу. О…
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 →