Skip to content

v1.0.2 - Performance Enhancements

Compare
Choose a tag to compare
@3rdit 3rdit released this 11 Jun 00:36
· 1 commit to master since this release
c2f6575

Changes:

  • Fixed progress tracking getting stuck at ~93%, functions that couldn't be processed (no MLIL/architecture) are now properly counted in progress tracking
  • Implemented batched patching. All patches for a function are now collected and applied with a single mutex lock, significantly reducing lock contention
  • Added work-stealing queue. Replaced static work distribution with dynamic work-stealing for better CPU utilisation
  • Dynamic batch sizing. Thread batch sizes now scale down as work becomes scarce, preventing thread starvation on complex functions
  • Reduced mutex overhead. UpdateAnalysis() calls are now batched per function instead of per patch
  • More responsive cancellation. Added cancellation checks every 100 instructions when processing large functions
  • Work queue uses adaptive batch sizes (5→3→2→1) based on remaining work, and thread synchronisation improved with condition variables for work distribution.

Full Changelog: v1.0.1...v1.0.2