On 16/05/07, Karl Hasselström [off-list ref] wrote:
I set up a kernel repository with 100 applied and 100 unapplied
patches:
[...]
Then repeatedly:
$ time stg series >/dev/null
I ran 'git repack -a -d' and 'git prune'. There are no other objects
apart from the generated pack:
$ du -sh .git
211M .git
And then repeatedly 'time stg series > /dev/null':
real 0m1.638s
user 0m1.422s
sys 0m0.088s
real 0m2.542s
user 0m1.436s
sys 0m0.078s
real 0m2.916s
user 0m1.424s
sys 0m0.083s
real 0m2.940s
user 0m1.425s
sys 0m0.081s
real 0m1.614s
user 0m1.421s
sys 0m0.081s
real 0m1.587s
user 0m1.423s
sys 0m0.081s
real 0m2.653s
user 0m1.427s
sys 0m0.075s
But my kernel repository is _much_ smaller than yours:
$ du -sh .git
183M .git
Do you perchance have a bunch of loose objects in there?
It got smaller after repacking but it is still bigger than yours.
Maybe the reason is that I have 14 branches with various patches, some
of them just for historical reasons but going back to 2.6.12. There
are also several commits generated for the patch logs.
The CPU is a P4 at 2.5GHz and the 'stg series' operation seems to be
CPU bound rather than IO. I'm also using Python 2.3 on this PC and for
this reason I changed 2 generator constructs (x for x in ...) with
list comprehension (see the attached patch).
--
Catalin