r/macapps 3d ago

Lifetime DiskScanPro V1.1

Post image

Version 1.1 of DiskScanPro now available from the Mac App Store.

  • Problem: While developing Lumidex Studio, there was a chunk of testing on various RAW files from different camera manufacturers (Nikon, Canon, Sony et al), and SDKs to deal with for the USB tethered capture module - all of this testing takes a lot of disk space for said RAW files and SDKs. With my Mac only having 512GiB of disk, I was running low, very low. DiskScanPro was born as a means of scanning my drive for essential 'junk' littered about the place with a view to trashing the lot, primarily because an app I'd used years and years ago hasn't been maintained/updated for some time! In my first scan I junked over 140GiB of disk space to all manner of stuff I'd accumulated over the years. Interestingly, that huge chunk of drive space allocated in the yellow block (95GiB) is my Parallels VM running Win11, development work of a forthcoming photobooth app to rival the big players :)
  • Comparison: Disk Inventory X - app mentioned above, very old in the tooth.
  • Pricing:  £1.99 in the UK, priced the same amount in other geographic locations - Mac App Store link: https://apps.apple.com/us/app/diskscanpro/id6802771798?mt=12

The app offers tree-map, sunburst and file view, critically I implemented a SHA-256 hashing function to scan for 100% content-duplicate files, irrespective of filename/date/time attributes. Essential for weeding out files that simply shouldn't exist on your drive because of previous bad file management.

You can also save snapshots of scans, for easy comparison with future scans to see what was added/removed etc.

Any feedback gratefully received. And, hopefully my local karma levels in this group will now allow me to publicise my photography app mentioned above in full, even though it's NOT available via the Mac App Store (more on that later....)

Upvotes

13 comments sorted by

u/Additional-Fun-7619 2d ago

This looks incredibly well made and the sunburst UI is super clean. Quick question regarding the SHA-256 hashing: does it take a significantly long time to run a full duplicate scan on a nearly full drive, or is it pretty optimized under the hood?

u/LumidexStudio 2d ago

The SHA-256 hashing function is very much optimised... The overall scan is split in three:

  1. The initial scan is simply looking for two or more files that byte-sized identical, say 1,000,000 bytes for sake of argument. Given the file size, they /could/ be the same internally. If a file differs by just one byte, internally they're not the same.
  2. From the list of byte-size files, if the size of the file is less than 1MB a full SHA-256 hash is performed, otherwise, the app then does what I call a mini-hash. It grabs the first 128Kb and last 128Kb of the file, does a SHA-256 hash on those chunks between two or more byte-size files. IF they match, then the file is a good contender for being a dupe, it's then passed to the third step.
  3. Files matching first/end chunk hashing, has a full has across the entire file to check for duplicated data. Obviously if a full hash passes, then you've discovered two or more files that are 100% identical inside, and you have the option then to do whatever you please with them.

The mini-hash and full hash will use as many cores as your Mac can throw at it. The all was developed on an Air M3 with 8Gb memory, and flew through several hundred thousand files in just a few minutes.

u/Additional-Fun-7619 2d ago

That 128Kb mini-hash step is a brilliant optimization. Skipping a full hash on massive files unless the first and last chunks match must save an incredible amount of processing time. Thanks for breaking down the logic behind it!

u/LumidexStudio 2d ago

You're welcome.. this app came about while developing r/lumidexstudio - I essentially ran out of disk space having to have countless RAW files/SDKs during the software development. While I knew those files were kinda large, I also didn't have much of a clue where else my drive space was being wasted.... First iteration of the app, scanning my disk I recovered 145GB :)

u/StrikingTop2709 2d ago

yeah the sunburst view caught my eye too, curious about the hashing speed on larger drives as well

u/Unlikely_Patience_31 2d ago

How does DiskScanPro handle APFS snapshots and cloud placeholder files? Are they excluded or clearly marked so they are not mistaken for normal reclaimable space?

u/LumidexStudio 2d ago

They are identified as non-reclaimable space. I put a banner across the top of the app which advises such.

u/Viktor153 2d ago

This visualization is so cool! First I thought I was looking at a chip under a microscope.

u/LumidexStudio 2d ago

Haha, yeah I guess it does look a bit like a microchip!

u/redditnutzer 2d ago

Wow, fantastic app, bought it immediately^^

One issue though: Can it remember the items you've chosen at the top of the window?

A global setting would be nice so I could have e.g. "Size, "Sunburst" and "List" as the default ones (I know, "Size" is already a default).

When I now scan a new folder, these defaults are used.

If you e.g. toggle off "List" within this new scan, this choice is remembered for this scan only.

Thanks!

u/LumidexStudio 2d ago

That’s a neat idea, I’ll add your suggestion to my to-do list.

u/redditnutzer 2d ago

Thank you