Monday, February 2, 2009

Closer to 2.5

Hey, this time I am actually getting closer to releasing a new version. Sorry it's taken so long.

This update is a few minor fixes and updates. The real killer feature that everyone is waiting for is Vista support, of course. I found this thread of someone else trying to get help from Microsoft implementing another custom column. Read it here:

So as you can see, Vista support isn't happening for me or anyone else.

I was doing some experimenting with a new Size On Disk column, that would be similar to the Size On Disk display in Explorer's folder properties. But, if I understand how NTFS works correctly, I believe the Size On Disk in Explorer's folder properties is broken! Let me explain:

The common understanding of file storage on most file systems is that file contents are written into storage units called clusters, typically 4K each, which allows the drive to manage its allocated space more easily. Since the drive must allocate each file a number of clusters, it is likely that more space is given to a file than is needed for its contents. This results in some wasted space (0 to 4095 bytes) per file. This is confirmed by Windows Explorer, which shows each file's size on disk rounded up to the next multiple of 4K in file and folder properties. This is all true for FAT file systems.

However, NTFS has another optimization called Master File Table Resident files, where small files (less than around 700 bytes) are stored in the table that stores other metadata about the file. The file does not use up any clusters! Therefore it makes no sense to round its "Size on Disk" up to the size of the full cluster, as Windows Explorer does. That's why I believe its Size on Disk display is misleading. Here is Wikipedia on resident files in NTFS:

Could Folder Size show the true size and thus improve on Windows Explorer further? I haven't yet found an API to report whether the file is resident or not. Let me know if anyone knows how to do this.

So here's a list of the improvements that will be in this update:

New display mode: unformatted bytes. This may help some people who are confused by the other units, and helps for accuracy testing.

New icon for the control panel, submitted by Christian Helmrich.

New translation: Russian, submitted by one Игорь Петрович.

New Credits dialog. This was suggested by the Russian translator, and is a good idea. Now everyone who has submitted something that's made it into the final program has some recognition.

Optimization: The service process (FolderSizeSvc.exe) should use less memory! Informal measurements show a 20% reduction.

Also, I'm currently trying to simplify the installation MSI a bit. I've always hated how it asks if you want a Typical, Custom, or Complete install, when they're really all the same thing. Custom lets you change the directory, so instead of asking which install type, the installer should just ask what directory to install to. This should be a simple change, but I'm editing the MSI manually with Orca, which is painful.

So, if you don't install this update, you won't be missing out on much. But it's nice to have some updates... hopefully I'll have it ready soon!