Releases: classgraph/classgraph
fast-classpath-scanner-1.90.10
Numerous small bugfixes surrounding classpath determination and handling
fast-classpath-scanner-1.90.8
Fix classpath scanning on Windows (Class-Path manifest entries weren't being properly resolved)
fast-classpath-scanner-1.90.7
More speed and memory optimizations
fast-classpath-scanner-1.90.6
More optimization work
- Replaced ExecutorService with custom threading, which increases scanning speed by ~8%.
fast-classpath-scanner-1.90.5
Optimize buffering strategy.
fast-classpath-scanner-1.90.4
Fix buffer underrun issue with new buffering layer.
fast-classpath-scanner-1.90.3
Performance optimization release -- fixed a profiling hotspot.
fast-classpath-scanner-1.90.2
Major performance and memory consumption improvements:
- Add a fast custom buffering layer (greatly reduces CPU overhead of classfile parsing compared to using DataInputStream).
- Reuse buffers across classfiles (reduces GC churn).
- Lazily allocate constant pool objects (reduces the number of wrapper objects created by a factor of 5).
fast-classpath-scanner-1.90.1
Bugfixes, optimization and code cleanups for multithreaded scanning.
fast-classpath-scanner-1.90.0
First release to support parallel scanning.
This is the first release to support multithreaded scanning, which overlaps disk/SSD reads, jarfile decompression and classfile parsing across multiple threads. This typically reduces scan time by 30-60% (the speedup increases by a factor of 2 on the second and subsequent scan of the same classpath by the same JVM instance, because disk/SSD read bandwidth is the bottleneck, and file content is cached within a JVM session). Note that any custom MatchProcessors that you add are all run on a single thread, so they do not need to be threadsafe (though it's a good habit to always write threadsafe code even in supposedly single-threaded contexts).
Parallel scanning seems to perform stably and correctly, but please report any regressions. This release is a preview of FastClasspath Scanner 2.0, which will be released after further testing.