On Sep 26, 2013, at 7:20 AM, Jochen Theodorou <blackd...@gmx.org> wrote:

> Hi all,
> 
> probably not such a good time to ask, since many of those, that could 
> answer this might be on JavaOne... but still
> 
> On the user list we got an interesting program that makes quite some 
> problems to the jvm as it seems. The groovy program looks like this:
> 
>>    println "Started"
>>    for(int i = 0; i < 100; i++) {
>>        print "."
>>        for (int j=0;j<100000;j++) {
>>            Container c = new Container()
>>            c.run()
>>        }
>>    }
>>    println "\ndone"
>> 
>> public class Container implements Runnable {
>>  public Container() {}
>>  public void run() {
>>    GroovyShell gs = new GroovyShell()
>>    Script script = gs.parse("")
>>    script.run()
>>  }
>> }
> 
> What happens is that gs.parse will create a new script and a new class 
> every time. Now using our custom call site code this works fine. Using 
> the indy port, it fails with a permgen error on any jdk7 before u40. On 
> u40 this works fine again. In jdk8 this fails sometimes with a metaspace 
> error, while in u40 it seems to work quite reliable.
> 
> The problem must be more than just creating many classes, because our 
> custom callsite caching creates just as many classes for the scripts as 
> the indy version does. What does not happen so much there though is code 
> generated by reflection and of course non from indy. So I especially 
> suspect the code cache here to be responsible for the problem, but I 
> have no real basis for this. I lack the means to diagnose the problem 
> further
> 
> Is there a way to make this work on older jdk7 vms? And is there a way 
> for me to make this work on jdk8? Do others here have similar experiences?

Is this 64-bit with compressed oops?  Is tiered compilation on?

> 
> bye Jochen
> -- 
> Jochen "blackdrag" Theodorou - Groovy Project Tech Lead
> blog: http://blackdragsview.blogspot.com/
> german groovy discussion newsgroup: de.comp.lang.misc
> For Groovy programming sources visit http://groovy-lang.org
> 
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to