Hi, I made a test with veto at package level to try to see if the patch is correct, if it's of any use. https://github.com/apache/openwebbeans/pull/30
Feel free to comment or just discard it. On Mon, Jul 27, 2020 at 11:30 AM Mark Struberg <[email protected]> wrote: > Should work as expected. I need to think through if we really need to walk > into all superpackages in the while(true). > Or if we should try to get those results from the cache as well. > > a.b.c.d.e.f.x1 > a.b.c.d.e.f.x2 > > In that case the whole list up to f should already be cached for x2. > > LieGrue, > strub > > > > Am 27.07.2020 um 11:19 schrieb Vicente Rossello <[email protected]>: > > Hi, > > That's what already did and times become as usual, but I'm not sure if it > breaks something (I'm not using any veto). Tests in openwebbeans-impl do > work with this change > > On Mon, Jul 27, 2020 at 11:14 AM Mark Struberg <[email protected]> wrote: > >> Hi Vincente! >> >> There is a bit code before that block which already checks the cache: >> >> Boolean result = packageVetoCache.get(previousPackage); >> if (result != null && result) >> { >> return result; >> } >> >> >> Imo it should also return if a False is cached. >> can you please remove the && result and do a bench again? >> >> txs and LieGrue, >> strub >> >> >> >> Am 27.07.2020 um 10:00 schrieb Vicente Rossello <[email protected]>: >> >> Hi, >> >> I've seen a startup performance regression since OWB 2.0.17 and latest >> snapshot. Our boot times have increased from 10 to about 14 seconds (only >> OWB side). I can see that it always try to load the same package-info's in: >> >> while (true) >> { >> try // not always existing but enables to go further when getPackage is >> not available (graal) >> { >> pckge = classLoader.loadClass(previousPackage + >> (previousPackage.isEmpty() ? "" :".") + >> "package-info").getPackage(); >> break; >> } >> catch (Exception e) >> { >> if (previousPackage.isEmpty()) >> { >> pckge = null; >> break; >> } >> packageVetoCache.put(previousPackage, false); >> idx = previousPackage.lastIndexOf('.'); >> if (idx > 0) >> { >> previousPackage = previousPackage.substring(0, idx); >> } >> else >> { >> previousPackage = ""; >> } >> } >> } >> >> >> I think that, in this loop, it should take into account the packageVetoCache >> (whether it's true or false). Is it correct? Do you want a PR with this >> correction? >> >> >> Best regards, >> >> Vicente. >> >> >> >
