aboutsummaryrefslogtreecommitdiffstats
path: root/weaver/testdata
diff options
context:
space:
mode:
authorStefan Starke <stefan@starkeweb.org>2019-10-08 13:27:41 +0200
committerAndy Clement <aclement@pivotal.io>2022-01-13 15:07:30 -0800
commit0e58847d8d341b70734576aa813f755d9a716a18 (patch)
tree393edd496668ea365780412d10b40e94ee7ac963 /weaver/testdata
parent1b3cead1715cd4f233d81c88ba7a33dc1aa59886 (diff)
downloadaspectj-0e58847d8d341b70734576aa813f755d9a716a18.tar.gz
aspectj-0e58847d8d341b70734576aa813f755d9a716a18.zip
Optimize class loading
In our project we found out that during the build up of the spring context the class loading takes a very long time. Root cause is the huge amount of file I/O during pointcut class loading. We are taking about ~250k file loads. With these changes we managed to cut down the starting time by around 50%. What we found out is that IMHO - the clear method of the ClassLoaderRepository is called far too often -> in our settings this resulted in not a single cache hit as the cache got cleared permanently. Therefore we de-actived the cache clear calls inside the ClassLoaderRepository. Secondly we changed the Java15AnnotationFinder in a way to not always create new objects for the ClassLoaderRepository but re-use one static instance. Otherwise we experienced >100k objects being created. Last but not least we introduced a cache for unavailable classes so that they do not have to be looked up using file I/O over and over again. The whole behavior is configurable via + org.aspectj.apache.bcel.useSingleRepositoryInstance (default: true) + org.aspectj.apache.bcel.useUnavailableClassesCache (default: true) + org.aspectj.apache.bcel.ignoreCacheClearRequests (default: true) Signed-off-by: Stefan Starke <stefan@starkeweb.org> Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'weaver/testdata')
0 files changed, 0 insertions, 0 deletions