Closed
Description
We should improve memory usage for large projects. Recently, Lucene's build
crashed with OOM because too many classes were loaded. This was mainly caused
by the task being run top-level, but forbidden should still not hold everything
in memory.
The following improvements are easy:
- For related classes, we don't need to hold the ClassReader in memory (holding
the byte array). Those classes are only parsed and signature lists are created.
We should only extract superclasses and interfaces and throw the classreader
away
- We may add lazy loading on classes to scan. This could be done by a type of
"ClassLoader" that does a lookup on the Ant/Maven FileSet. The class is only
parsed one time and classreader is thrown away. After parsing the class we just
keep the sigantures for later lookups of related classes available.
Original issue reported on code.google.com by uwe.h.schindler
on 10 Nov 2013 at 11:07