Слюни - Есть ли прямая корреляция между количеством правил и пространством permgen? - PullRequest
0 голосов
/ 30 августа 2018

Я запустил таблицу решений drools с 100 правилами, и она работала нормально. Но как только я увеличил количество правил до 1000, я начал получать ошибку пространства permgen. Мне пришлось увеличить permgen до 256 МБ для моего процесса, чтобы вместить 3000 правил. Меня беспокоит то, что я продолжаю добавлять правила, мне может понадобиться все больше и больше permgen.

Я имею в виду не использовать слюни и разработать собственное решение из-за этой проблемы.

Это правильное наблюдение или я делаю что-то неправильно, что приводит к увеличению потребности в пространстве для перманента

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Да, мы знаем об этой проблеме https://issues.jboss.org/browse/RHDM-488

0 голосов
/ 30 августа 2018

По приведенной ниже ссылке мы можем отключить permgenThreshold для Java 7, хотя это отрицательно скажется на производительности оценки правила.

https://issues.jboss.org/browse/DROOLS-1016?focusedCommentId=13144411&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13144411

Повышенная потребность в занимаемой площади пермгена не вызвано новым алгоритмом фрика, но главным образом тем, что в Ограничения drools 6 объединяются, то есть преобразуются в байт-код, а затем оценивается в скомпилированном режиме вместо использования mvel для каждого оценка. Вы можете иметь более точный контроль над пространством permgen используется drools для установки системного свойства drools.permgenThreshold. Это свойство представляет порог использования PermGen (в процент), выше которого двигатель останавливает ограничения JITting и позволяет они работают в интерпретированном режиме. В частности установка этого свойства в 0 полностью отключит эту оптимизацию, но я не советую вам сделать это, потому что прирост производительности, полученный в результате оценки ограничения в скомпилированном режиме действительно актуальны. Мое предложение, в по крайней мере, в долгосрочной перспективе, это перейти на JDK 8, который больше не имеет Пространство PermGen отделено от обычного пространства кучи.

...