[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] slowness of simple operations like "add"
From: |
Georg-W. Koltermann |
Subject: |
Re: [Monotone-devel] slowness of simple operations like "add" |
Date: |
Mon, 14 Feb 2005 10:42:53 +0100 |
Am Sonntag, den 13.02.2005, 23:24 +0100 schrieb Georg-W. Koltermann:
> Hi,
>
> with my 5.000 file project (currently only one revision in monotone) I
> noticed that even trivial operations like adding a single file using
> "monotone add <name>" can be quite slow, 30s on my machine.
>
> I have profiling data of this operation at
> http://www.rahn-koltermann.de/files/monotone-gprof.out.bz2
>
Hi,
well maybe it's worth while to summarize what I see in the profiling --
please note that I have very very limited experience at it. I also
don't understand what really happens behind a method name. So just for
discussion purposes:
1. It seems 51% of the time is spent in calculate_base_manifest(),
index [8] in the profiling data. Why do we need to calculate
the base manifest at all? Couldn't we cache that in MT/revision
or some other file?
2. Most time of the above is spent in parse_edge() [19] and
parse_change_set() [29]. Why does that take so long when I have
only ONE revision in the database???
3. Then 43% of time is spent in build_addition() [15] with major
contributions by apply_path_rearrangement() [25] and
concatenate_rearrangements() [20]. This is an area where I
cannot even guess what it does.
Ideally I would think that the "monotone add" could be just a quick
check in the database if the file is already present and then a write to
the work file. But maybe I am too naive here.
--
Regards,
Georg.