Table of contents for cfdiff
I have (finally!) updated the code in the cfdiff project with a better difference algorithm. Namely, an implementation of the Shortest Middle Snake algorithm as implemented in C# by Matthias Hertel. The changes are in diff.cfc.
The new algorithm is not always faster than the old algorithm, especially for small documents with simple changes, but it is much faster for large documents or for documents with lots of little changes. Also, the new algorithm uses linear O(n) memory instead of quadratic memory O(n2), which makes it much friendlier in a non-dedicated or shared environment. YMMV.