2009-07-20 3 views
1

Я хотел бы знать, если, например, у меня есть около 80 доменов в моих проектах, означает ли это, что 80 доменов будут загружены в память при запуске проекта или он будет загружен, когда мне понадобится этот домен ...много доменов = много использования памяти?

Кажется, что у меня есть много доменов в одном проекте, мне приходится отключать автоматическую компиляцию и увеличивать пространство perm gen.

Есть ли какие-либо решения для загрузки, когда мне нужно получить доступ к этим доменам? не все домен будет использоваться ... иногда это просто небольшой домен, который почти никогда не затрагивается пользователями, что-то происходит (например, особые случаи)

Я использую grails 1.1.1 на данный момент и должен отключить авто компилировать для домена, иначе он застрял и исчерпал пространство памяти/памяти gen

ответ

2

Grails поддерживается Hibernate, а Hibernate необходимо загрузить каждый класс домена в конфигурации при запуске, так что нет загружать только части домена.

Увеличение PermGen - довольно обычная вещь, особенно в разработке, поскольку по умолчанию только 64 МБ, а файлы классов не получают легко разгружаться, когда граф перекомпилирует материал и перезапускает приложение.

Вы наблюдали подобное использование памяти при запуске из военного файла?

+0

не. я увеличил свое пространство gen до 300 Мбайт и отключил автоматическую компиляцию, поэтому, когда я добавляю что-то или меняю на домен, мне нужно перезапустить grails. btw почему Hibernate нужно загружать все в начале? java также загружает весь класс при запуске приложения? – nightingale2k1

+0

Спящий режим должен загружать все классы домена, чтобы он мог проверить конфигурацию и предварительно сгенерировать любые прокси-серверы, которые могут понадобиться –

0

Вы сталкиваетесь с этой проблемой при работе в режиме разработки? Если это так, вы всегда можете попробовать изменить источник данных режима разработки из базы данных HSQLDB в базу данных на базе базы данных HSQLDB. Вы можете найти файл, который вам нужно отредактировать в grails-app/conf/DataSource.groovy

+0

Я использую mysql, и я работал в режиме разработки. – nightingale2k1

Смежные вопросы