Comparing file dependencies based on modification times and inodes, etc does
not work 100% of the time and leads to workarounds that never quite close the
gap.
I have not found checksumming to be a problem in redux. Like you, I initially
thought it would decrease performance so I added a check for the mtime first
and skipped the checksum if the mtime had not changed.
However, when I compared the two methods, it turned out that the difference
was not significant so I removed the mtime check. redux always checksums
dependencies now and it's still fast.
On the issue of performance; on my circa 2008 laptop, it takes 9.9 seconds to
run sha1sum on 5 files of size (22M 22M 154M 506M 786M).
That's a long time to wait, but those are large files.
On the other hand, sha1sum on the .go files in redux (32 files
ranging from 4k to 16k), takes less than 0.01 seconds (time (1) doesn't track
smaller units).
Also, keep in mind that git checksums files on commit but no one complains that git is too slow.
A simple solution is always preferable to a complicated solution that requires workarounds.
I think you would be pleasantly surprised if you try it.
-Gyepi