Smart server performance with checkouts

Nicholas Allen nick.allen at onlinehome.de
Tue Jun 26 09:08:24 BST 2007


I was just doing some quick use cases with the smart server to see how 
it performed. It seems to make a huge difference when branching without 
any local history but I was suprised to find that a lightweight checkout 
now takes considerably longer than a full branch with all history. I 
would have thought that lightweight checkout would be much quicker as 
the server just needs to tar up the working tree and send it to the client:


time bzr branch  bzr+ssh://user@host/project
Copying repository content as tarball...
Branched 102 revision(s).

real    0m19.064s
user    0m4.340s
sys     0m1.532s

nick at nick-laptop /tmp> time bzr branch  sftp://user@host/project
Branched 102 revision(s). 


real    3m44.590s
user    0m4.936s
sys     0m0.436s

nick at nick-laptop /tmp> time bzr co --lightweight 
bzr+ssh://user@host/project
 

real    1m7.126s
user    0m1.880s
sys     0m0.220s

Also a full checkout (which is really just a branch followed by a bind) 
took about the same amount of time as a lightweight checkout.

It seems strange though that a checkout is so much slower than a branch 
when they are essentially the same command.

I guess there's still a lot of work to be done on improving the smart 
server.

Is this expected to improve in 0.18?


Nick



More information about the bazaar mailing list