Buy / upgrade page, download page.
No longer maintained — see the download page.
Version 2.2.15: Dec 30, 2017
Changes only icj (java version of IntegrityChecker).
- Optimized icj to run up to 50% faster on fast SSDs, and at nearly 2/3 the speed of the native version on large files, and in some cases faster than the native version on mixed files.
Version 2.2.15: Dec 24, 20167
The only change is to IntegrityChecker (now version 1.2.5), plus all items were rebuilt with the latest XCode on macOS 10.13.2.
- IntegrityChecker now automatically uses all virtual CPU cores (hyperthreading). For example on a 2017 iMac 5K with a 4-core CPU, IntegrityChecker uses 8 threads. This results in up 38% speed improvement on drives that can deliver very fast I/O speeds (1.6 GB/sec and faster) for large files. For example on a 2017 iMac 5K capable of 3 GB/sec, verifying large files goes from about 1740 MB/sec to 2400 MB/sec. On slower drives, no improvement will be seen.
Version 2.2.14: August 14, 2016
No changes to native macOS version except that the DMG file now includes icj.
Changes to IntegrityChecker java version, icj 1.0b7:
- Color coded output for some lines if xterm is in use. Errors and issues are now in red.
- Fixed bug where last folder or two could be missed.
Changes to IntegrityChecker java version, icj 1.0b6:
- Detects and flags and ignores symlinks except for the top left arguments.
- Flag ENCODING_TEST can be set to test proper console charset (see icj script).
- fixed minor issue where if a file changed date but not hash or size the hash file would not be updated if only that file were changed.
- macOS DMG now includes icj, now linked into /usr/local/bin just like the other apps. No separate download needed for macOS users.
- Removed the prohibition on the colon character in file or folder names. Java on OS X turns forward slashes into ":" and this allows operation to work fine with the system properly mapping ":" to slash when the file is opened. The ramifications of this for other operations systems are unknown, but they too have issues with "/" in file or folder names, and java is likely to gag in any case. It is best to avoid such "evil" file names.
- Symlinks are ignored (except for top level args), and they are not flagged unless VERBOSITY=verbose or debug.
- Added support for .icj_ignore file in user home directory. File/folder names must match exactly (no wildcarding, at least not yet). This facility is in addition to built-in defaults.
Version 2.2.14: August 4, 2016
- CROSS-PLATFORM IntegrityChecker icj beta version included. More info...
- IntegrityChecker now ignores the new .icj files created by icj.
- The create-files --noverify option is now supported (was ignored before), and its shortcut conflict with -n has been removed.
- dgl finfo command now shows file times to the milliseconds
Version 2.2.13: Jan 24, 2016
Results are now also written to the top level of the volume (provided system security allows it).
- Most commands in DiskTester now write the results to the top level of the volume, in addition to the longstanding practice of writing them to ~/Library/Logs/diglloydTools/. This file will not be written when system security prevents it, but the results will always be written to ~/Library/Logs/diglloydTools/.
- Some commands in DiskTester now emit results files where before those commands wrote only in progress output as the test progressed.
Version 2.2.12: Dec 5, 2015
- diglloydTools has long employed kibibytes/mebibytes/gibibytes, etc but displayed the units ambiguously as "KB", "MB", "GB", "TB", etc. Units are now display unambiguously as "KiB", "MiB", "GiB", "TiB". KiB = 1024, MiB = 1024^2, GiB = 1024^3, TiB = 1024^4.
- Certain commands now emit partial results when stopped before completion. This allows starting a command and canceling it and still getting a useful summary.
Version 2.2.11: Feb 28, 2015
- During the read phase of fill-volume, MB/sec is is now also shown for the last 1/10/30 files as trailing averages (not just total average). This yields insight into any anomalous drive behavior while the test is running without needing to wait for the entire read phase to complete.
Version 2.2.10: Dec 4, 2014
- Changed default to synchronous reads for read-files and fill-volume (the --xfer buffer single|dual option).
- While reading small files, the read-files and fill-volume commands were suffering from significant memory allocation overhead which for small files led to reduced speed (in real time terms), slowing the file reading time down. The final tabular output was correct in all cases, but the test ran longer than it ought.
Version 2.2.9: Nov 21, 2014
Efficiencies, transfer size defaults, appropriate to fast drives, standard deviation.
- Modified default transfer size for various commands to a larger value (128MB) which is more in line with the hyper fast SSDs available today.
- Fixed bug in which reported MB/sec was too high when using double async buffers in fill-volume with very fast SSDs.
- Removed verify option from read-files and fill-volume; this is properly handled by test-reliability, and verification causes certain measurement difficulties with very fast SSDs. The double async buffer case is now a very tight loop and shows more consistent MB/sec readings.
- Fixed erroneous MB/sec and time in sequential testing (intermediate message during testing).
- Standard deviation is now reported with some test results.
Version 2.2.8b, Nov 15, 2014
- Fixed a rounding error bug for some input sizes in oddball cases.
- Added a detailed explanatory error message to the iops command when invoked asking for more random writes than the specified test size and transfer size allow. Formerly, the message was only "-50 paramErr".
- Fixed conflicting option name shortcuts in iops command. The --transfers option now has single letter shortcut 'r' (was 't', which conflicted with --test-size).
- Removed “noise” message from iops output (InitRandomThread).
- Restored missing graphs folder and Install-cmd-line-tools.app which had gone missing in the build.
Version 2.2.8a, Nov 13, 2014
All about the test-reliability command.
- Revision of test-reliability to use synchronous (instead of asynchronous) writes which might have been a factor in triggering an I/O chain bug.
- If bad data is found, test-reliability now emits detailed information about the bad bytes in the form of pairs of lines which show the expected and actual, with indicators. The retry code after such errors has been similarly enhanced.
- The test-reliability command now defaults to dual patterns (instead of five patterns), for a faster test over large volumes. The prior 5-pattern default can be specified using “--pattern all”. There is also a new triple pattern option.
- In multi-pattern situations (dual, triple, all options), the test-reliability command now starts with the random patter and finishes with zeroes as an attempt to be friendlier to SSDs that compress data.
Version 2.2.7b, August 29, 2014
- Fixes an issue in which DiskTester set a default of one hour for the duration of test-reliability. When duration is not explicitly specified the testing runs until the number of iterations has completed.
Version 2.2.7a, June 27, 2014
Two bug fixes.
- Fixes an issue in which IntegrityChecker (ic) would not finish if it encountered resource forks.
- Fixed an issue in which read-files would not stop (respond to control-C) if async double buffers were being used (the default).
Version 2.2.7, June 14, 2014
NOTE: IntegrityChecker has a bug related to resource forks in which it will not finish and progress won't advance. A 2.2.7a will be released on or around July 27, 2014.
- test-reliability command now offers a duration option.
- IntegrityChecker no longer processes resource forks. To check such anachronisms, use version 2.2.6.
- create-files now respects the --xfer option.
- By default, run-sequential and run-sequential-suite no longer allocate all the space on the drive. The --allocMax option must be specified for the prior behavior.
- The volume is now flushed after each iteration for run-sequential and -sequential-suite, to preclude other system activity from affecting the results. Flushing is also noted in progress info.
- The --caching option was added for certain commands. This allows file system caching (unified buffer cache), which generally hides drive performance for reads, but is 'interesting' in some cases.
- The read-files command now subtracts out progress and error checking overhead time, generally of no importance (considerably less than 0.1% impact in most cases, but now more correct albeit less true to real world overhead of real programs).
- The read-files command now locks down its buffers (non VM-pageable) in all cases as a precaution in case memory on the system is low.
- The read-files command now ignores resource forks, which have long been a moribund feature of OS X.
- The read-files command supports a new --xfer-buffer option which offers a single (synchronous) or dual (asynchronous) buffer option. The single buffer mimics most app behavior, while the dual buffer mimics more sophisticated applications.
- The read-files command now doubles the buffer size when doing verify with two async readers so that each is using the specified buffer size (not half the specified size).
- The create-files and read-files commands now support the --xfer option (had been coded to use 8MB buffer only, always).
Version 2.2.6, May 6, 2014
- Release notes now they reside on this page instead of in file.
- dgl: the wipeFree command no longer leaves an empty folder on the volume when it is too full to write more than the last file.
- dgl: fixed erroneous error message in help output.
Version 2.2.5, May 5, 2014
- DiskTester: commands which have graphing templates now output the graph data into a text file inside the diglloydTools directory under the Documents directory of the user’s home folder.
- MemoryTester: the compute command now outputs the graph data into a text file inside the diglloydTools directory under the Documents directory of the user’s home folder.
Version 2.2.4, May 3, 2014
Version 2.2.3, April 1, 2014
- IntegrityChecker: eliminated messages about certain hidden system files to simplify output and status.
- IntegrityChecker: added warnings if folders cannot be accessed due to security restrictions.
- DiskTester: OS X 10.9 Mavericks introduces a new file system bug that can hang the system when using certain DiskTester commands such as ‘run-sequential’ and ‘run-area-test’. A bug has been filed with Apple and there is a workaround if the issue is encountered.
- All GUIs have been recompiled with latest XCode. It is possible that undetected issues could arise (GUI only).
Version 2.2.2, October 26, 2013
- IntegrityChecker: Workaround added: OS X 10.9 broke FSGetCatalogInfoBulk() API by violating documented behavior.
Version 2.2.1, April 23, 2013
- IntegrityChecker: fixed erroneous summary bug in which empty files were counted as hashed files. No effect on correctness.
Version 2.2.0, December 15, 2012
- Two minor bug fixes over 2.2 fc5.
- Rebuilt with latest XCode on OS X 10.8.2 Mountain Lion using latest frameworks.
- Targeted at OS X 10.8, tested as working under OS X 10.6 and 10.7.
- Long-standing beta commands now final.
- No known bugs at the command line level.
- The “CFileHash::SetStored:: already have a stored hash” error is now prevented from happening. This won’t fix existing folder; hand edit out the duplicate entry or 'ic clean' the folder then 'ic update' the folder. The cause was an update followed by renaming a file in case only (eg foobar vs Foobar) then running another update would generate duplicate hash entries. This is now prevented from happening.
- Known issue: closing the DiskTester GUI without first stopping the executing test in the background will leave the test running— stop any running test prior to quitting. No fix is planned for this at present. Use Force Quit as needed.
- Deprecation: GUI support might not be carried forward to future OS X versions due to incessant Apple API changes, and XCode changes.