<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Joe White wrote:
<blockquote
 cite="mid:34BDFBE99738224A95074CB8A2C54D6EAF1D0A@recsbs1.RecondoTech.com"
 type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
  <style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
  </style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
  <div class="Section1">
  <p class="MsoNormal"><span style="color: rgb(31, 73, 125);">Mark,
thank you very much for
your help, it is greatly appreciated.<o:p></o:p></span></p>
  <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">&#8220;There
are improvements we can make to generated code into a single class and
use a
switch statement to invoke the correct part, but we don't have time for
that
right now, so would need to come from the community.&#8221;<o:p></o:p></span></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><o:p>&nbsp;</o:p></span></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(79, 129, 189);">I
would be interested in doing this work if someone can point me
in the right direction on where to start.</span></p>
  </div>
</blockquote>
look for the *.mvel templates in drools-compiler you'll see how we
generate the code. Then look at all the various java builders, like
JavaConsequenceBuilder and you'll see how we construct it. compiled
code is done in two places. We first generate an invoker class which
implements the interface, like the Consequence interface and then we
genernate the code to be executed which is called via the invoker. It
needs to be two as the needed parameters for the java consequence to
execute differer (different number of vars) so the invokers job is to
match the needed interfaces and adapt/bridge to calling to the actual
consequence/eval/predicate. We currently generate all the
consequence/eval/predicate in a single class per rule, but we have a
class per invoker.<br>
<br>
So we now need invoker apis, like Consequence, to take an int so it can
use a switch statement to which allows multiple invocations to be
generated into the same file. An idea solution will take a
configuration on teh granularity that people want - to what we have now
right up to putting everything into a single file for the entire
package.<br>
<blockquote
 cite="mid:34BDFBE99738224A95074CB8A2C54D6EAF1D0A@recsbs1.RecondoTech.com"
 type="cite">
  <div class="Section1">
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(79, 129, 189);">
I also would be interested in doing
the work to allow drools to reference multiple levels of inner classes.
  </span></p>
  </div>
</blockquote>
This is done and fixed in 4.0.x and trunk - we just haven't released
any binaries wit hteh fix.<br>
<blockquote
 cite="mid:34BDFBE99738224A95074CB8A2C54D6EAF1D0A@recsbs1.RecondoTech.com"
 type="cite">
  <div class="Section1">
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(79, 129, 189);">Our
work would benefit from both pieces of functionality. I&#8217;ll move this to
the
developer list, but would appreciate if somebody knowledgeable could
show me
where to get started on the code necessary to generate to a single
class.</span></p>
  </div>
</blockquote>
I've cc'd this into the dev mailing list, so please when you reply do
so to just that mailing list.<br>
<blockquote
 cite="mid:34BDFBE99738224A95074CB8A2C54D6EAF1D0A@recsbs1.RecondoTech.com"
 type="cite">
  <div class="Section1">
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(79, 129, 189);"><o:p></o:p></span></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(54, 95, 145);"><o:p>&nbsp;</o:p></span></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(54, 95, 145);">Thanks,<o:p></o:p></span></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;; color: rgb(54, 95, 145);">Joe<br>
  <br>
  </span><span style="color: rgb(54, 95, 145);"><o:p></o:p></span></p>
  <p class="MsoNormal"><span style="color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <div>
  <div
 style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
  <p class="MsoNormal"><b><span
 style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: windowtext;">From:</span></b><span
 style="font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-serif&quot;; color: windowtext;">
<a class="moz-txt-link-abbreviated" href="mailto:rules-users-bounces@lists.jboss.org">rules-users-bounces@lists.jboss.org</a>
[<a class="moz-txt-link-freetext" href="mailto:rules-users-bounces@lists.jboss.org">mailto:rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Mark
Proctor<br>
  <b>Sent:</b> Wednesday, August 13, 2008 2:53 AM<br>
  <b>To:</b> Rules Users List<br>
  <b>Subject:</b> Re: [rules-users] Max packages<o:p></o:p></span></p>
  </div>
  </div>
  <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
  <p class="MsoNormal">Joe White wrote: <o:p></o:p></p>
  <p class="MsoNormal">Can someone help me understand the relationship
between the
number of Packages in a single RuleBase and PermGen memory consumption?
I have a
test that generates &nbsp;200 rules and then adds those rules as different
packages to a single rule base. PermGen consumption grows near linearly
with
the addition of Packages to the rule base and on a default PermGen
setting the
JVM runs out of PermGen after about 120 packages.<o:p></o:p></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">It's
not related to Packages, it's related to the number of rules and
whether those
rules have compiled java parts&nbsp; - like the consequence, eval etc - each
one adds an additional class.<br>
  <br>
  <o:p></o:p></span></p>
  <p class="MsoNormal">&nbsp;<o:p></o:p></p>
  <p class="MsoNormal">Is every new Package and RuleBase backed by a
set of
generated Classes? Is there a way to get around the amount of class
generation
that is taking place?<o:p></o:p></p>
  <p class="MsoNormal">The test has been run against Drools 5.<o:p></o:p></p>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;">You
can use MVEL, which has no class generation. There are improvements we
can make
to generated code into a single class and use a switch statement to
invoke the
correct part, but we don't have time for that right now, so would need
to come
from the community.<br>
  <br>
  <o:p></o:p></span></p>
  <p class="MsoNormal">&nbsp;<o:p></o:p></p>
  <p class="MsoNormal">Thank you for your help,<o:p></o:p></p>
  <p class="MsoNormal">Joe<o:p></o:p></p>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre style="text-align: center;">
<hr align="center" size="4" width="90%">

  </pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>_______________________________________________<o:p></o:p></pre>
  <pre>rules-users mailing list<o:p></o:p></pre>
  <pre><a moz-do-not-send="true"
 href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><o:p></o:p></pre>
  <pre><a moz-do-not-send="true"
 href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><o:p></o:p></pre>
  <pre>&nbsp; <o:p></o:p></pre>
  <p class="MsoNormal"><span
 style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,&quot;serif&quot;;"><o:p>&nbsp;</o:p></span></p>
  </div>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
  </pre>
</blockquote>
<br>
</body>
</html>