While comparing the running time of our Java diff implementation to a diff implementation used in IntelliJ I noticed that for a diff that didn't finish within hours with our Java implementation, IntelliJ produced a diff within seconds. Profiling the Java diff implementation showed that it spends basically all running time allocating tiny objects. Remembering what I learned and experienced about implementation differences I thought that maybe there must be faster implementations of the same diff algorithm. I started looking for performance benchmarks and found https://github.com/gliese1337/fast-myers-diff which is a JavaScript implementation of Myers diff algorithm that claims to be about 50x faster than fast-diff (the library we're currently using) in some of the tested cases. I think it would be worth testing it and seeing if this reduces the running time enough to not to be an issue anymore. |