On 12/11/06, Linus Torvalds <torvalds@xxxxxxxx> wrote:
So I don't think there is a right answer here. I suspect QProcess does ok.
I have just pushed a patch (wiil be available in few hours I suspect) to easily choose the data exchange facility with git-rev-list. Default its temporary file based, but after uncommenting the USE_QPROCESS define in dataloader.cpp and compile again, qgit will use a QProcess based approach to connect with git-rev-list. Only the low level connection is different in the two cases, _all_ the rest, expecially data storing and parsing, is the same. If you take a look at src/dataloader.cpp you will see that the difference between QProcess and temp file code is minumum. I've also tried to clearly report in comments the different approaches and the data copy involved in both cases. I've searched a little bit in QProcess sources too to get some additional info. And finally these are mine warm and cold cache tests. Load time test on Linux tree (44557 revs, 32167KB) CPU Mobile Pentium 4 set at 1.2GHZ To set data read interval in ms use (src/dataloader.cpp): #define GUI_UPDATE_INTERVAL 500 Warmed-up cache QProcess 7632ms (500ms data read interval) QProcess 7972ms (100ms data read interval) Temporary file 4408ms (500ms data read interval) Temporary file 4591ms (100ms data read interval) Cold cache QProcess 25611ms (500ms data read interval) File 22399ms (500ms data read interval) Marco - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html