sillsdev / LfMerge

Send/Receive for languageforge.org
MIT License
2 stars 4 forks source link

Try using chg to speed up Send/Receives #352

Open rmunn opened 1 week ago

rmunn commented 1 week ago

A bit of experimentation produced the following results from doing a Send/Receive of sena-3:

2024-11-09T00:46:26.8182547Z LfMergeQueueManager starting with CHORUS_HG_EXE value "<null>" and args: 
2024-11-09T00:47:27.5562779Z LfMergeQueueManager finished

Total time: 1 minute 0.7 seconds.

2024-11-09T02:37:51.3240498Z LfMergeQueueManager starting with CHORUS_HG_EXE value "chg" and args: 
2024-11-09T02:38:31.8872123Z LfMergeQueueManager finished

Total time: 40.5 seconds.

So that's a 33% faster Send/Receive on Language Forge, just from switching from hg to chg.

This is pretty much an ideal case, because this S/R didn't have to do any work in C# code. So 33% is about the maximum speedup we can achieve. On Send/Receives that do a lot of work in C# code, we'd expect to still save 20 seconds of Mercurial startup time (because Chorus calls hg/chg a fixed number of times), but starting from a baseline of more than a minute so the percentage will be lower.