From: Linus Torvalds Date: Thu, 14 Aug 2008 17:21:35 GMT Subject: Re: pack operation is thrashing my server Message-ID: In-Reply-To: On Wed, 13 Aug 2008, Nicolas Pitre wrote: > > A much better solution would consist of finding just _why_ object > enumeration is so slow. This is indeed my biggest grip with git > performance at the moment. > > |nico@xanadu:linux-2.6> time git rev-list --objects --all > /dev/null > | > |real 0m21.742s > |user 0m21.379s > |sys 0m0.360s > > That's way too long for 1030198 objects (roughly 48k objects/sec). Why do you think that's horribly slow? Doing a rev-list of all objects is a fairly rare operation, but even if you want to clone/repack all of your archives the whole time, please realize that listing objects is _not_ a simple operation. It opens up and parses every single tree in the whole history. That's a _lot_ of data to unpack. And trees also pack very efficiently (because they delta so well), so there's a lot of complex ops there. > And it gets even worse with the gcc repository: I bet it's because gcc has a different directory structure. I don't have the gcc sources in front of me, but I'd suspect something like a single large directory or other. > Clearly something is not scaling here. I don't agree. There's no "clearly" about it. Different data sets. Linus