daniellansun commented on PR #2852: URL: https://github.com/apache/groovy/pull/2852#issuecomment-5517312884
@blackdrag You are right that 100 was aggressive next to a ~10k naïve break-even. I had kept it below the indy threshold so a trampoline could appear while cold indy was still on `doMethodInvoke`; that undervalued `defineHiddenClass`. We did consider 1k. The default is now **1000** (`InvokerFactory.DEFAULT_THRESHOLD`, same order as `groovy.indy.optimize.threshold`). Generation still happens only on interned `CachedMethod`s that stay on the MOP that long; anything colder never pays the define. On real applications: the numbers we have are still micros (`CachedMethod.invoke` in isolation, plus a short megamorphic row). They do not stand in for Grails, Gradle, or a long-lived Groovy service. I would not claim a wall-clock win there without a workload that keeps the same `MetaClass` method table hot. If you have a candidate app bench, I am happy to run `disable=true` against the default on it. The kill switch stays for anyone who would rather not generate. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
