Yes, it is very easy for those sites to become megamorphic. We work round this by using exactInvokers on function invocation call sites, and caching on the method type of the functions rather than the types.
On 21/06/2012 11:37, "Jochen Theodorou" <blackd...@gmx.org> wrote: >Hi all, > >I was wondering... if I have code like this: > >list.each { x -> foo(x) } >list.each { x -> bar(x) } >list.each { x -> something(x) } > >then isn't it the a case where within the each method we easily get >something megamorphic, since there are too many different kinds of >lambdas involved? Isn't that a general problem with internal iterators >and is there any plan to enhance hotspot to counter that problem? > >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