What about running
jmap -histo:live <ps>
after 1, 10 and 100 cycles? Just insert a sleep long enough to let you
run the utility.
-W
On 17/02/2013, Julian Klein <julianklein(a)gmail.com> wrote:
Hi all,
I trying to run Drools Expert with varying sizes of memory, but no matter
how large I go the system continues to thrown OoM Exceptions. As my
application runs memory slowly, but steadily dries up. Perhaps this is
related to the other recent thread regarding memory leaks? I have searched
high and low in the forums with no luck on what could cause this problem.
It seems like a memory leak to me at this point as I have profiled and
found no problems in my code.
How My App Works:
Anyway, my application creates a StatefulKnowledgeSession with ~100 rules,
inserts a 1000 facts, fires all rules, inserts new facts created from the
first run, changes the agenda, fires rules again and then disposes the
session and related resources. It does this in tight loops, thousands of
times. This means there should not be 1B objects floating around in memory
from Drools.
I have thought of a few ways out:
1) reduce the speed at which I create and dispose rule sessions; not ideal
for performance
2) re-using the session though this seems it will cause more memory issues
3) move to stateless knowledge sessions, but for some reason some of my
utility functions fail with this approach.
Any insight would be appreciated.
Thanks,
Julian