<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Ian Clatworthy escreveu:
<blockquote cite="mid46AFD9BE.7040001@internode.on.net" type="cite">
  <pre wrap="">Fabio Machado de Oliveira wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">My main performance issue would be with the commit command (if I could
get past the barrier of convincing 200+ people to change their version
control). A single file commit in a project with 10000 files and 115
directories:



          1337607 function calls (1299480 primitive calls) in 32.526 CPU
seconds

    Ordered by: cumulative time
    List reduced from 1023 to 20 due to restriction &lt;20&gt;

    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
         1    0.000    0.000   32.526   32.526
commands.py:368(run_argv_aliases)
         1    0.002    0.002   32.518   32.518 builtins.py:2187(run)
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Yes, the biggest two hot spots in my benchmarking are commit and
branch/checkout.

I've been working on commit with lots of help from people much smarter
than me and there is a solid understand of what still needs to be done.
I've temporarily switched focus to documentation because we need more
structure/quality there right now but I expect to be back on commit
performance in the next week or two.

BTW, if you haven't already, try the graphical profiling view given by
KCacheGrind. I've attached a sample showing the latest bzr.dev (with the
pyrex stuff compiled) running commit on a mozilla-ish tree (~ 50k files)
with quite shallow history (~ 10 revisions). It would be interesting to
see the same on your tree with your history. If you want to find that,
it's as easy as this:

  bzr --lsprof-file callgrind.out.ci commit -m "blah"
  kcachegrind callgrind.out.ci

As you'll see from the attached, _populate_from_inventory() takes 57% of
the overall time. That will dramatically drop once that routine is
replaced by a far more efficient way of doing things. If you're keen to
help at all, let me know.

Ian C.
  </pre>
</blockquote>
Hi Ian,<br>
<br>
I'm not likely to help, but I really appreciate your work.<br>
This is my callgrind file.<br>
<br>
Fábio<br>
<br>
</body>
</html>