(all builds are PGO-ed & LTO-ed)
Changelog:
- Add --v6 to display more information with --all switch,
- Display mode used in threads progress display: xxx1 - lazy, xx1x - ohh, x1xx - rc, 1xxx - brotli (e.g. 0011 means that lazy and ohh modes are used),
- Speed up threads progress refresh 2x,
- Improve result validating speed with --all switch, especially visible in "small amount of iterations" runs,
- Allow passing optional numeric parameter next to --testrec switch to change the default of 20 maximum unsuccessful tries to some other number (this number can still be exceeded with threads),
- Fix display update regression with threads and --v>2,
- Fix inefficient threading on --v<3 (including default),
- Fix wrong buffer size,
- Fix excessive CPU usage with MASTER controller thread when more SLAVE threads finished their work and are idle, and verbosity <3 or default,
- Code should now be also OS X portable including threads and their affinity setting, thanks to MegaByte,
- --testrec is now multithreaded,
- Every memory allocator now uses built-in wrapper which shouldn't crash Zopfli on out of memory or heap fragmentation, instead will throw an error and wait for memory to become available. Retried every minute,
- Fix wrong time offset in ZIP files,
- CTRL+C will now properly abort program when --mui is already set to 1,
- Display block splitter counters only on verbosity level 5,
- Ratio is now a compression ratio not the % of original,
- Block progress is now displayed when the block compression finishes not starts and it's a bit improved,
- Use B, KB, MB in Data Left,
- Add ZOPFLI_REALLOC_BUFFER for TraceBackwards and ZopfliStoreLitLens for a small speed up of ~2% (measured on Odroid U3),
- Fix other verbosity issues.