Поиск и устранение неисправностей утечек памяти Grails/Groovy?

Существует хорошая реализация регистрации b-сплайна Rueckert et al (1999), доступной на matlab central , написанной Дирком-Яном Круном.

Я бы посоветовал вам использовать существующие реализации, подобные этой, поскольку написание классического алгоритма регистрации с нуля означает повторное изобретение колеса.

Следует отметить, что эта реализация регистрации b-сплайна ожидает грубые (например, жесткие или аффинные) предварительно зарегистрированные данные. Это не будет работать, если ссылка и цель, например, полностью по-разному масштабируется или сильно вращается и т. д. Предварительно зарегистрируйтесь.

16
задан Don Werve 3 April 2009 в 01:30
поделиться

6 ответов

Вы пробовали

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

?

Вместе с увеличением числа обычных подозреваемых ( -Xmx , -Xms , -XX: PermSize и -XX: MaxPermSize ) это решило все проблемы PermGen на нашем производственном Tomcat Это произошло довольно скоро после развертывания приложения. Никогда не видел другого исключения OOM после этого. : -)

10
ответ дан 30 November 2019 в 21:54
поделиться

Мне лично нравится VisualVM. Вокруг существуют определенно более мощные инструменты, но у этого есть хорошее удобство использования к отношению мощностей.

6
ответ дан 30 November 2019 в 21:54
поделиться

Анализатор Памяти Eclipse является бесплатным инструментом, который, по крайней мере, так же хорош как Yourkit.

2
ответ дан 30 November 2019 в 21:54
поделиться

YourKit является хорошим инструментом, я раньше многократно диагностировал проблемы памяти. Это является коммерческим, но это имеет бесплатную пробную версию в наличии для одноразовой отладки.

1
ответ дан 30 November 2019 в 21:54
поделиться

Проблема, у Вас есть появление в разработке или производстве?

Если Вы находитесь в разработке, помните, что Grails постоянно перекомпилировал много аспектов Вашего приложения (не только Доменные изменения, но и изменения контроллера и другие классы также). У меня есть проблемы PermGen также, но большинство инициировано устойчивой перекомпиляцией файлов, я продолжаю работать. Можно выключить эту функцию

http://www.grails.org/FAQ#Q:%20OMG%20I%20get%20OutOfMemoryErrors%20or%20PermGen%20Space%20errors%20when%20running%20Grails%20in%20development%20mode.%20What%20do%20I%20do?

Если Вы работаете, то, очевидно, у Вас есть намного более критическая проблема. Проблемы памяти PermGen приписываются многим платформам, на которых Grails создается, включая Spring, Будьте в спящем режиме, и даже собственная JVM Sun. Вы могли попытаться настроить максимальный размер "кучи" для своего веб-контейнера (Tomcat или Причал).

Вы могли также попробовать другую реализацию JVM, как JRockit Oracle, который, как предполагается, значительно лучше в сборке "мусора" и других средствах эффективности. Я никогда не пробовал его сам, но так как я также посреди разработки и обширного проекта Grails, я могу делать покупки решения этих проблем сам.Удачи!

1
ответ дан 30 November 2019 в 21:54
поделиться

Если это происходит после Вас горячий, несколько раз повторно развертывают Ваше приложение, Вы можете быть затронуты этой ошибкой Grails. Tomcat FAQ также имеет несколько возможных причин для утечек PermGen.

0
ответ дан 30 November 2019 в 21:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: