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