[ https://issues.apache.org/jira/browse/GROOVY-11571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17930468#comment-17930468 ]
ASF GitHub Bot commented on GROOVY-11571: ----------------------------------------- codecov-commenter commented on PR #2154: URL: https://github.com/apache/groovy/pull/2154#issuecomment-2683477628 ## [Codecov](https://app.codecov.io/gh/apache/groovy/pull/2154?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report All modified and coverable lines are covered by tests :white_check_mark: > Project coverage is 68.8221%. Comparing base [(`c471e5d`)](https://app.codecov.io/gh/apache/groovy/commit/c471e5dd3eb02464ae985e8294ec51784ecb9f53?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to head [(`518f7ab`)](https://app.codecov.io/gh/apache/groovy/commit/518f7ab3140d202a202e5684b0a9b1fdff69a8e7?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache). > Report is 3 commits behind head on master. <details><summary>Additional details and impacted files</summary> [](https://app.codecov.io/gh/apache/groovy/pull/2154?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) ```diff @@ Coverage Diff @@ ## master #2154 +/- ## ================================================== - Coverage 68.8238% 68.8221% -0.0018% + Complexity 29442 29441 -1 ================================================== Files 1420 1420 Lines 113173 113173 Branches 19558 19558 ================================================== - Hits 77890 77888 -2 - Misses 28740 28741 +1 - Partials 6543 6544 +1 ``` [see 2 files with indirect coverage changes](https://app.codecov.io/gh/apache/groovy/pull/2154/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) </details> > Performance problem in Eclipse RCP/OSGi/Equinox environment > ----------------------------------------------------------- > > Key: GROOVY-11571 > URL: https://issues.apache.org/jira/browse/GROOVY-11571 > Project: Groovy > Issue Type: Bug > Components: groovy-runtime > Affects Versions: 4.0.25 > Environment: Eclipse RCP 4.25 > Reporter: Torsten Witte > Assignee: Paul King > Priority: Major > > We have an Eclipse RCP application that includes Groovy (4.0.25) so that > users can customise it via Groovy scripts (groovy, groovy-datetime, > groovy-dateutil, groovy-json, groovy-templates, groovy-xml, groovy-yaml). > Unfortunately, we have noticed that the compilation of each individual script > takes several seconds (e.g. 3 seconds and more for a tiny script). > We have discovered that it will be faster if we remove some Groovy libs (e.g. > groovy-yaml), but that is not an option because we need the dependencies. > Then we have noticed that the scripts compile in a few milliseconds if the > application has been started with the Eclipse "-clean" parameter > ("osgi.clean"). > The scripts can therefore be compiled much faster! > However, the "-clean" parameter slows down the start of the application, as > the OSGi configuration has to be recreated each time, and that is also not an > option for us. > It seems that Eclipse/OSGi/Equinox holds some wiring information in its > configuration folder which slow down the Groovy compile times (more precise: > the class loading). > When drilling down into the problem, we got as far as buddy class loading, > where the time is lost. > The reason is in the {{MANIFEST.MF}} of the {{groovy_<version>.jar}}: > {noformat} > Eclipse-BuddyPolicy: dependent > {noformat} > Setting the value to "global" fixes the problem and the scripts are always > compiled in a few milliseconds, whether starting the application with or > without the "-clean" parameter. > {noformat} > Eclipse-BuddyPolicy: global > {noformat} > The documentation of the [Buddy Class > Loading|https://wiki.eclipse.org/Context_Class_Loader_Enhancements#Buddy_Policy_2] > says: > bq. dependent - Consults all bundles that directly or indirectly depend on > the bundle. An indirect dependency can be introduced by bundles that use > Require-Bundle with the visibility directive set to reexport. Note that this > casts a rather wide net and may introduce performance problems as the number > of bundles increase. > We use Require-Bundle in our {{MANIFEST.MF}} but without visibility reexport: > {noformat} > Require-Bundle: [...], > groovy;bundle-version="4.0.25", > groovy-datetime;bundle-version="4.0.25", > groovy-dateutil;bundle-version="4.0.25", > groovy-json;bundle-version="4.0.25", > groovy-templates;bundle-version="4.0.25", > groovy-xml;bundle-version="4.0.25", > groovy-yaml;bundle-version="4.0.25", > [...] > {noformat} > Are there reasons why the entry "Eclipse-BuddyPolicy" in the {{MANIFEST.MF}} > of the {{groovy_<version>.jar}} is set to "dependent"? > Is it possible to set the value to "global" in further releases? > (Another problem with the Eclipse-BuddyPolicy is described in GROOVY-6491) -- This message was sent by Atlassian Jira (v8.20.10#820010)