From: Kyle Moffett Date: Fri, 22 Dec 2006 01:44:12 GMT Subject: Re: cloning the kernel - why long time in "Resolving 313037 deltas" Message-ID: <991F50E2-2C98-4710-84C5-3D7348E00B64@mac.com> In-Reply-To: <46a038f90612181502y3e2a41cds7f16113ad0270f31@mail.gmail.com> On Dec 18, 2006, at 18:02:07, Martin Langhoff wrote: > On 18 Dec 2006 14:26:36 -0800, Randal L. Schwartz > wrote: >> Linus Torvalds wrote: >>> You're running this under OS X, aren't you? It's a pig of an OS, >>> but "almost one hour" vs "25 seconds" is still unreasonable. >> >> I agree! > > Me too -- but entirely possible. Disk IO is specially painful on > OSX. Stat calls are horrid. Using Arch (which abused stat calls to > no end) many ops would take 50x-100x longer on OSX than on Linux. A > large unpacked repo with git is a real pain -- and packing it can > take hours. I've actually also seen filesystem operation latency double or triple if you start trying to do operations from multiple threads at once. Suddenly the already dog-slow single-CPU operations start bouncing caches and the Mac OS X mostly-whole-of-BSD-BKL across CPUs and it just crawls. I can definitely see the local disk IO taking 100x longer than the network I/O, especially with an 8-megabit internet link. > Once you are packed it's sweet, but large repos are a pain to deal > with. You won't impress anyone with performance over a linux kernel > repo -- starting up gitk can take a long time. Stat-heavy stuff > like git-diff is noticeably slower under OSX. Just as an example, it takes my OS-X-running Quad-2.5GHz G5 ten times as long to do a "grep -rl foo linux/" as my Linux-running dual-1GHz G4 with 400MHz system bus. This is disk-cache-hot too. And that's not even a stat-heavy workload. There's more than one reason I'm trying to make a Mac OS X ABI emulation layer on top of Linux :-D. Cheers, Kyle Moffett