Performance improvement
This release leverages improvements in JNA 5.12.0 which should significantly improve performance. Finalizers in JNA were replaced by Cleaners, reducing the impact of native memory allocations in tenured heap space by promptly releasing native memory allocations and reducing Garbage Collector usage.
JNA's Memory
class now implements Closeable
. All direct allocations of Memory
and classes extending JNA's ByReference
have their underlying Memory
allocation freed proactively. Classes extending Structure
on the hot path are also proactively freed.
- #2075: Reduce heap thrash with HKEY_PERFORMANCE_DATA buffer - @dbwiddis.
- #2080: JNA 5.12.0 - @dbwiddis.
- #2081: Proactively free native Memory allocations - @dbwiddis.
- #2082: Proactively free native reference allocations in utils - @dbwiddis.
- #2083: Proactively free native reference allocations on hot path - @dbwiddis.
- #2085: Proactively free remaining native ByReference allocations - @dbwiddis.
New Features
- #2046: Added getSystemCpuLoad/getProcessorCpuLoad convenience methods - @Osiris-Team.
- #2050: Implement optional Windows Load Average - @dbwiddis.
Bug fixes / Improvements
- #2016: Make disabled counter check robust to invalid registry types - @dbwiddis.
- #2033: Graceful fallback for CPU Topology without udev - @dbwiddis.
- #2034: Fallback or log warning to avoid exception with no udev - @dbwiddis.
- #2039: Include PID 0 on macOS - @dbwiddis.
- #2054: Prevent NPE when network interface has no statistics - @dbwiddis.
- #2055: Fix incomplete collection of child processes - @marcelkliemannel.
- #2077: Fix processor numbering with Windows Processor Groups - @dbwiddis.
- #2078: Support macOS 13 (Ventura) - @dbwiddis.