CompactGUI - Easily reduce the footprint of programs and games on Windows 10

Discussion in 'Windows OS and Software' started by sm2596, Oct 14, 2017.

  1. sm2596

    sm2596 Notebook Enthusiast

    Reputations:
    4
    Messages:
    46
    Likes Received:
    19
    Trophy Points:
    16
    [​IMG]

    This tool is an open-source standalone visual interface to make using the Windows 10 compact.exe function more available to more people. It's intentionally designed to only compress folders and files.

    Whole drives and entire Windows installations cannot be modified from this tool — users seeking that functionality should use the command-line version built into Windows (this is intentional).

    The compression used by compact.exe is similar to the built-in NTFS compression in that it is transparent. Compressed files and programs can still be accessed as if nothing has changed and show up in Explorer as they normally would — they'll just be decompressed on the fly at runtime. However, the newer algorithms are much more efficient than NTFS (LZNT1).

    Download
    Download / More information on GitHub


    Uses
    Use this tool to:
    • Compress program folders (e.g. Adobe Photoshop: 1.71 GB --> 886 MB)
    • Compress game install folders (e.g. Portal 2: 11.8 GB --> 7.88 GB)
    • Compress any other folder on your computer except those in C:/Windows (use the command line for that)
    For most modern computers there will be no (or very little) performance loss. Those with older HDDs may even see a decent performance gain in the form of reduced loading times as the smaller files means it takes less time to read programs and games into RAM.
    [​IMG] [​IMG]

    Extra Features
    • More accurate reporting than the built-in Windows command-line tool (as there are some bugs with parsing that Microsoft needs to fix)
    • Analyze the status of existing folders
    • Integration into Explorer context menus for easier use.

    Screenshots
    [​IMG]

    Background
    Windows 10 includes a little-known but very useful tool called Compact that allows one to compress folders and files on disk, decompressing them at runtime. With any modern CPU, this added load is hardly noticed, and the space savings are of most use on those with smaller SSDs.

    As program folders and games can be shrunk by up to 60%, this has the added bonus of potentially reducing load times - especially on slower HDDs.

    More information on the inbuilt Windows function can be found here

    Compression Options
    By default, the program runs Compact with the /EXE:XPRESS8K flag active. This provides a good balance between compression speed and size reduction. The default that Windows uses is /EXE:XPRESS4K. The options available are:

    • XPRESS4K: Fastest, but doesn't compress as much
    • XPRESS8K: Decent balance between speed and compression
    • XPRESS16K: Slower, but compresses the most
    • LZX: Okay technically this one compresses the most, BUT it is for compressing folders that are hardly used and are just being stored. Please don't use this on game or program folders.
    Additional Notes
    In my testing, using any of the XPRESS modes has no discernible impact on CPU performance when the compressed program is run (Using an i7-6700HQ). Here's the output tests for Adobe Photoshop:

    [​IMG]

    However, if your processor is especially old, you may find that performance is worse when folders are compressed with 8K and 16K. Use 4K instead. Despite this, I've successfully tested it on an i3-370M from 2010, and it had no issues with performance on any of the compression modes.
     
    Last edited: Oct 15, 2017
    Vasudev likes this.
  2. Phoenix

    Phoenix Super Tweaker

    Reputations:
    8,227
    Messages:
    14,725
    Likes Received:
    18,681
    Trophy Points:
    931
    This is snake oil taken to the next level. Compressing any file means the files have to be uncompressed before they can be used. Stay away from this people. :rolleyes:
     
    Jarhead, Vasudev and tilleroftheearth like this.
  3. bennyg

    bennyg Notebook Deity

    Reputations:
    308
    Messages:
    1,175
    Likes Received:
    481
    Trophy Points:
    101
    Snake oil? Bit harsh. It has its uses (mostly to decrease hdd throughput bottlenecking and increase effective storage pool for archival type data) and this looks better than the integrated windoze on the fly version

    I'd like to see file write overhead tests to gauge whether there's a "negligible" impact there too, since encryption is usually a lot more computationally intensive than decryption.
     
  4. Phoenix

    Phoenix Super Tweaker

    Reputations:
    8,227
    Messages:
    14,725
    Likes Received:
    18,681
    Trophy Points:
    931
    @tilleroftheearth please step in
     
  5. 6730b

    6730b Notebook Evangelist

    Reputations:
    150
    Messages:
    382
    Likes Received:
    337
    Trophy Points:
    76
    Surely good intentions. But I'd definitely opt for larger hd \ ssd (or more cloud storage, ...or reclaim lotsa space by deleting\offloading all that forgotten trash that somehow ends up everywhere :0)

    Long ago, when large hd's were immensely expensive, a reliable, safe 'live' compression would be very welcome, but with todays prices? Potential gain not worth the experimentation risks. imo. That said, others may put it to good use.
     
    Phoenix likes this.
  6. tilleroftheearth

    tilleroftheearth Wisdom listens quietly...

    Reputations:
    4,335
    Messages:
    11,853
    Likes Received:
    1,882
    Trophy Points:
    631
    Yeah; snake oil may be a little bit harsh. But it isn't anything I would test, let alone recommend.

    Any third party program that interferes with the O/S's (built in) abilities is suspect in my eyes.

    Especially when a significantly larger drive is a mere few $$ away for the few GB's you may save using these type of compression techniques.

    If the need to save a few GB's is that great; back up your data, cross your fingers and give it a shot. But I would recommend saving for a bigger system drive and/or external drive where you can move your DATA to instead.

    Just don't expect to be able to do standard recovery procedures reliably if/when that drive fails (please don't do this on your data - ever).

    The biggest issue with this is that if there are any glitches in the use of the system - and inevitably there will be - it will be impossible to tell what you're tracking/fixing down... if it's possible to fix anything in the first place.

    Hardware (i.e. a bigger storage subsystem in this case) is always superior to a software solution. ;)

     
    Vasudev and Phoenix like this.
  7. sm2596

    sm2596 Notebook Enthusiast

    Reputations:
    4
    Messages:
    46
    Likes Received:
    19
    Trophy Points:
    16
    Ouch, but if this is snake oil, then it's snake oil that's built-in to Windows. All the program does is send the arguments to compact.exe and capture the output.
    As for the compression, yes it has to be uncompresed. This is done on the fly, similar to how the LZNT1 compression works if you select "Compress this folder to save space" in the properties window of a folder in Explorer, so a file that is being sent to the CPU will be unpacked as it streams in from the drive. Windows 10 even added the /EXE flags especially for compressing programs - it says so if you run compact.exe /? from the commandline or read the docs here.

    The benefits of using compact.exe over the LZNT1 compression are a bit mixed. For one, compact.exe is multithreaded, so it's much more efficient. On the other hand, only compact.exe /c (without the /EXE:Xpress flag) matches LZNT1 in being able to compress new files as they're added to or updated in the selected folder.

    It doesn't really interfere, just runs the in-built program and captures the output. The source code is visible on GitHub so you can see there's no sneakery going on :)
    I do agree with you entirely that a hardware solution is always better, but Microsoft added this feature in, so why not use it to salvage some GBs while waiting for the cash to upgrade?

    The main use for this is on programs and games, so loss of data shouldn't be an issue in those cases. Also Microsoft documents the use of compact in a few places, as well as the /compactOS function, which uses Xpress4k but on the Windows installation. They even have a guide on using it for image deployment, so I'd hope they've considered recovery.

    https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/compact-os
     
    Vasudev and bennyg like this.
  8. Vasudev

    Vasudev Notebook Virtuoso

    Reputations:
    800
    Messages:
    3,321
    Likes Received:
    1,586
    Trophy Points:
    231
    Its a nice find but compressing and decompressing takes a lot of cpu power.
    Unless you're running short of space on small sized SSD or ROM compact isn't needed at all. I'd compress the files only if its too old.
     
  9. sm2596

    sm2596 Notebook Enthusiast

    Reputations:
    4
    Messages:
    46
    Likes Received:
    19
    Trophy Points:
    16
    @Vasudev actually if your processor is relatively new, the performance impact should be minimal - in testing that I've done, there's been no noticeable impact on performance. In fact, Microsoft documents the XPRESS algorithms as being geared towards performance rather than compression: here and here
    Most CPUs can actually decode faster than they can stream data in from the drive, so for HDDs you might actually see an improvement, e.g.

    According to this guy an i7-3720QM can decompress XPRESS at rates between 320MBPS and 720MBPS. That's for an old, mobile chip too, newer ones (especially desktop ones) will be much faster, but let's use these values. An uncompressed file is read at 2000MBPS.

    Let's say you have a 1000MB file that gets compressed to 700MB.

    Let's now take an average SATA SSD's maximum sequential read speed - 520MBPS. This falls right in the middle of the decompress speed zone of the CPU, so performance might be slightly lower as the CPU might be receiving some data faster than it can decompress it - leading to a stutter.
    • Uncompressed: 1000MB read @ 2000MBPS across a 520MBPS interface = 1.92s to load
    • Compressed Worst Case: 700MB @ 320MBPS across a 520MBPS interface = 2.2s to load
    • Compression Best Case: 700MB @ 720MBPS across a 520MBPS interface = 1.35s to load
    Now let's take a HDD, optimistically running at 160MBPS.
    • Uncompressed: 1000MB @ 2000MBPS across a 160MBPS interface = 6.3s to load
    • Compressed Worst Case: 700MB @ 320MBPS across a 160MBPS interface = 4.4s to load
    • Compressed Best Case: 700MB @ 720MBPS across a 160MBPS interface = 4.4s to load

    So, even on an older mobile CPU there are benefits if compressing the file on a HDD. Even the slowest decompression algorithm was able to load the file faster than the uncompressed version because the speed was greater than that of the HDD.
    On an SSD, it's a bit more on the fence, but still, these are all highly optimistic values.

    As for CPU usage - no increases that I could note, even on an SSD, however my CPU is definitely much more powerful than the 3720QM used above. You can see the CPU usage for Photoshop in the original post.

    Other users have tested this, and only a 4 or 5 games (out of the 950 submitted) have been troublesome, and these ones might be using virtual disks to store the game on.
     
    Vasudev likes this.
  10. tilleroftheearth

    tilleroftheearth Wisdom listens quietly...

    Reputations:
    4,335
    Messages:
    11,853
    Likes Received:
    1,882
    Trophy Points:
    631
    I don't know the test, methodology and full platform spec's you used in post #1, but I can see from the 'numbers' that vs. the uncompressed data, the compressed method is not always faster - even in your example.

    I tested this myself on a handful of systems over the last couple of hours.

    Verdict: not for me. Just too laggy after using the system(s) for anything over 15 minutes in my normal workflows.

    Programs I tested on:

    Adobe Acrobat Pro
    Accounting program
    LR
    JAVA folder
    iTunes


    In all of the above scenarios; I compressed the above program folders with the default settings offered by the CompactGUI program, rebooted the system, let it sit idle for 15 minutes and then proceed to use it in one of my normal workflow/workloads. Note that I normally close all programs between uses during a session - that means I may open certain programs up to 20 times in a 15-30 minute period...

    With four identical platforms; I used different settings (other than defaults) for each one.

    I left one platform untouched to compare to.

    Within half an hour of rebooting and using the programs above; the system became noticeably laggy to me vs. the untouched platform. So much so that I didn't need the untouched platform to compare to.

    In my situation; I saved a whopping 1,300MB of space to get a more laggy system when I used the programs as I normally do (and each had been compressed).

    The pertinent system spec's I was using: i7 QC, 16GB RAM, 1TB SSD, Win10x64Pro (Fall Creators Update).

    While the theoretical 'scores' you calculated below (which I didn't double check, btw...) may seem to indicate a benefit - real world workflows don't support it (at least not my rwwf's).

    What is most telling to me is that this program doesn't allow me to compress the Windows folder (it says use the command line...). In other words; don't mess with O/S defaults - they're set that way for a reason. ;)

    When uncompressing the folders (then rebooting and waiting ~15 minutes again) I immediately felt more directly connected to the O/S (i.e. it was more responsive) - even without using the programs I had compressed - with all the test platforms. Not only did compressing make those programs laggy; it made the rest of the O/S laggy too. I can only conclude that the CPU is not the only indicator of the 'load' the decompressing does to the system overall - but it was a relief to see the 'snappiness' that I'm accustomed to from my systems return. :)

    YMMV.


     
    Phoenix and Vasudev like this.
Loading...
Similar Threads - CompactGUI Easily reduce
  1. plee82
    Replies:
    3
    Views:
    584

Share This Page