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.
A bit of experimentation produced the following results from doing a Send/Receive of sena-3:
Total time: 1 minute 0.7 seconds.
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.