2016-06-29 4 views
1

Я отлаживаю утечку памяти в своем приложении, которое использует spring-data-mongodb.1.9.1.RELEASE.Найти Spring-data-mongo MappingContext memory leak

MongoMappingContext использует примерно третья часть кучи. Он имеет ссылку на почти 30k PersistentEntity объектов общей стоимостью более 140 МБ.

Эта утечка памяти вызвана тем, что не нужен ссылки на объекты данных MongoDB, поэтому они не могут быть собраны в мусор. Почему многие из этих объектов могут содержаться в MappingContext, если я никогда не ссылаюсь на эти PersistentEntity объекты в моем коде?

ли проведение на моей модели данных объектов причиной MongoDB Spring Data держаться на это модель данных объектов?

ответ

3

Похоже, вы работаете в DATACMNS-855, который исправлен в последнем Hopper SR2.

+0

Звучит так, как будто это хорошо! Можете ли вы помочь мне понять версию? Я запускаю 'spring-data-commons.1.12.1.RELEASE', этот отчет об ошибке был для' 1.11.5'. Какую версию я должен снимать? –

+0

Как указано в билете, ошибка фиксируется в Гослинге SR5 (1.11.5), Хоппер SR2 (1.12.2) и предстоящем Ingalls M1 (1.13.0.M1). Более подробную информацию о схеме версии вы можете найти в [пример в спецификации Spring Data Releasetrain BOM] (https://github.com/spring-projects/spring-data-examples/tree/master/bom), которую мы рекомендуем использовать для ручного объявления версий для отдельных модулей, поскольку спецификация будет гарантировать, что вы получите соответствующие версии. Если вы пользователь Spring Boot, просто установите свойство 'spring-data-releasetrain.version' для' Hopper-SR2'. Предстоящие загрузки 1.4 по умолчанию. –

+0

Отлично, я не знал о 'spring-data-releasetrain.version'. Ты спасатель жизни Оливер. Я вернусь, если это затмит утечку. –