{"thread":{"id":"2011","subject":"Quilt vs. StGIT Performance","startedAt":"2005-10-04T09:09:30Z","lastAt":"2005-10-04T09:09:30Z","messageCount":1,"participants":["Catalin Marinas"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"9663","messageId":"tnxirwdfy2d.fsf@arm.com","threadId":"2011","inReplyTo":null,"subject":"Quilt vs. StGIT Performance","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@gmail.com","sentAt":"2005-10-04T09:09:30Z","receivedAt":"2005-10-04T09:09:30Z","isPatch":false,"sender":{"key":"catalin.marinas@gmail.com","avatar":null},"body":"I ran some benchmarks on both Quilt and StGIT (only the push/pop\noperations) with the -mm series (2.6.14-rc2-mm2, 566 patches). All the\npatches were refreshed since GIT does not support fuzzy patches. The\ntools output was directed to /dev/null (a slight advantage for Quilt\nsince it prints more information). For the StGIT benchmarks, the base\nof the stack was modified before each 'stg push -a' command because\notherwise pushing would just fast-forward the patches (timing similar\nto the pop command).\n\nAs you can see below, 'quilt push' is much faster than 'stg push'. The\nprofiling information on the latest snapshot shows that StGIT spends\nmost of the time (~75%) in git-write-tree (which calculates the SHA1\nvalue of the index file after every push). Unfortunately, this cannot\nbe avoided (otherwise, we would simply re-write Quilt).\n\nThere are other advantages of StGIT vs. Quilt but I won't go through\nthem in this e-mail. For huge number of patches, it's up to you to\ndecide whether speed is more important than the other StGIT features.\n\n\nQuilt vs. StGIT (push/pop)\n==========================\n\nNo. patches:   566 (linux-2.6.14-rc2-mm2)\nMachine:       P4 @ 2.5GHz, 512MB RAM, WDC IDE disk\nOS:            Linux 2.6.8-2-686 #1 Thu May 19 17:53:30 JST 2005 i686 GNU/Linux\nStGIT version: snapshot of 2005-10-04\nQuilt version: 0.39-2 (on Debian)\nGIT version:   0.99.8.GIT\n\n       run 1     run 2     run 3     run 4     run 5    average   per patch\n---------------------------------------------------------------------------\nstg push\n---------------------------------------------------------------------------\nreal  4:56.261  4:07.660  3:37.361  4:20.393  4:16.312  4:15.597  0.452s\nuser  1:44.004  1:44.051  1:44.047  1:43.802  1:43.718  1:43.924\nsys   0:49.803  0:49.812  0:49.458  0:49.714  0:49.954  0:49.748\n---------------------------------------------------------------------------\nstg pop\n---------------------------------------------------------------------------\nreal  0:27.918  0:14.123  0:17.280  0:45.767  0:26.957  0:26.409  0.047s\nuser  0:01.857  0:01.852  0:01.864  0:01.883  0:01.867  0:01.865\nsys   0:00.761  0:00.703  0:00.680  0:00.796  0:00.740  0:00.736\n---------------------------------------------------------------------------\nquilt push\n---------------------------------------------------------------------------\nreal  1:00.584  0:36.191  0:34.728  0:24.723  0:30.498  0:37.345  0.066s\nuser  0:05.687  0:05.551  0:05.632  0:05.591  0:05.618  0:05.616\nsys   0:07.835  0:07.588  0:07.454  0:07.536  0:07.552  0:07.593\n---------------------------------------------------------------------------\nquilt pop\n---------------------------------------------------------------------------\nreal  0:55.772  0:44.721  0:45.503  0:58.081  0:51.621  0:51.140  0.090s\nuser  0:13.606  0:13.601  0:13.646  0:13.725  0:13.590  0:13.634\nsys   0:24.813  0:24.762  0:24.697  0:24.658  0:24.833  0:24.750\n\n\n-- \nCatalin\n"}]}