Jean-Marc Lasgouttes a écrit :
"Abdelrazak" == Abdelrazak Younes <[EMAIL PROTECTED]> writes:

Abdelrazak> Abdelrazak Younes a écrit :
On Mon, Feb 06, 2006 at 09:59:42AM +0100, Jean-Marc Lasgouttes
wrote:
This is what I was about to suggest: currently, every time a
paragraph is created/killed, the whole document after it is
duplicated. For images, this means a lot of work. In particular,
I think a pixmap is created in the X server, which means a lot
of data to transfer.
Hello Jean-Marc, maybe this is the bottleneck I am looking for.
With my patch, undo/redo paragraph insertion is instantaneous and I
can see that ParagraphList::insert and/or erase are called. Could
you explain me why the whole document after a deletion has to be
created? Could you point me to the code that do that? Thanks in
advance.

Abdelrazak> In french we say "On est jamais si bien servi que par
Abdelrazak> soi-meme." So I investigated a bit more and I think the
Abdelrazak> bottleneck is in "paragraph_pimpl.C":

Abdelrazak> void Paragraph::Pimpl::eraseIntern(pos_type pos)

But eraseIntern is only called when removing characters from a
paragraph, right?

You are right of course. My use case is to type "Enter" in the middle of the paragraph of a big document (Extended or UserGuide) thus cutting this paragraph in two. In this case eraseIntern _is_ the bottleneck.

What does this have to do with creating/deleting an
empty paragraph?

Right, in the case of empty paragraph the slowdown is not in eraseIntern (logically) but elsewhere... I'll check.

Can you have access to a profiler?

If you know something that works with mingw, I will be happy to use that. Right now, I am profiling by putting debug info.

Abdel.


JMarc



Reply via email to