Утечка памяти в jTidy
Добиться утечки памяти в Java (равно как и .Net) конечно не так просто, как в C++, но всё же возможно. Недавно при написании нужного мне парсера наткнулся на утечку в jTidy.
Эта библиотека нужна для того, чтобы переводить невалидный HTML в валидный XHTML (который вполне соответствует стандарту XML). Дальше из полученного XHTML документа, при помощи XPath получаю нужные мне элементы. Это удобнее, чем разбирать документ при помощи регекспов, хотя и накладнее по памяти.
В общем, столкнулся я с проблемой, приложение падает с java.lang.OutOfMemoryError примерно через 3-4 часа работы. Сходу проблему обнаружить не удалось, пришлось запускать профайлер (в моём случае YourKit). Увидел такю картину:
Метки: garbage collector, java, jtidy, программирование