I've finally implemented ZStandard support for setup and tested it today with a fresh install on a Celeron 1037U dual-core machine from and to local SSD. The archive extraction part of setup went from taking 23 minutes to about 14 minutes. A (much) faster machine at work did the same install yesterday in under 12 minutes, limited mainly by the latency of requesting those files from a remote filer (found a defect trunk NIC the admin didn't know about while doing that) and writing it out to iSCSI block storage. For large writes to disk I've seen it peek in the 200MiB/s range today, which is close to the performance limit for my SSD through the file system. However, for unpacking lots of smaller files the latency of the SSD limits the average write speed to around 35MiB/s (up from 20MiB/s). It would take a major reorganization of setup to allow for overlapped / multithreaded extraction in order to improve significantly on that, minor improvements might still be had with more aggressive buffering in memory to reduce read/write turnaround and perhaps by using zero-copy data streaming.
The current code is available here: http://repo.or.cz/w/cygwin-setup/local.git The debug output statements are still in the code (although commented), I'll let that sit a while and see if I find something else I want to clean up before I submit it for the upstream repo. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Waldorf MIDI Implementation & additional documentation: http://Synth.Stromeko.net/Downloads.html#WaldorfDocs