Как я могу изменить отличную версию, используемую Grails 1.3.7, на Groovy 1.7.9?
У меня эта проблема возникает в приложении Grails 1.3.7, в котором каждую минуту процесс Quartz создает экземпляры примерно 500 новых объектов вроде этого:
class Foo{
Bar bar
Date d = new Date()
int v
}
def f = new Foo(bar:b, v:value)
Я наблюдаю, что при каждом запуске это занимает больше времени. Сначала это занимает несколько наносекунд, но к тому времени, когда приложение выйдет из строя с ошибкой PermGen нехватки памяти, этот процесс иногда занимает более 10 секунд ... для создания экземпляра объекта!
Я взял несколько дампов кучи и обнаружил, что CallSiteClassLoader забирает огромный объем памяти у ранее установленных объектов. Прочитав эту ветку , я решил напрямую изменить файл groovy jar в своей WAR. Теперь приложение работает плавно, как и должно, и опять же, после нескольких дампов кучи, похоже, что утечек памяти нет.
Но каждая созданная мной WAR продолжает поставляться с отличной версией 1.7.7, и мне приходится вручную изменять ее. .
Спасибо!