Hi Yanmin,

the excessive reformats where the core of the problem. That it happened even when nothing was going on (except so seemingly innocent actions as just moving the mouse) was the symptom that I reported. Because there is quite a difference between "symptom" and "root cause" and I prefer to update the issue summary to the root cause of the problem as soon as it is fully understood. Other developers prefer to keep the summary line exactly as provided by the issue reporter. I disagree with this but there is nothing I can do except to lead by example.

AFAIK the root cause of the problem was that the new DrawingLayer relied on EditEngine to do the formatting and it didn't keep the results. So every time it measured something the DrawingLayer reformatted it and measured it. Since our underlying text processing is outstandingly fast this problem wasn't noticed for quite a while.

The solution consisted of course in keeping the formatted result. And of course the DrawingLayer likes to keep it converted to a bag of BasePrimitives. Doing it this way the measurements only need to be done once and the base primitives cache the results. So this is the reason why I think that the cached results may benefit your case:
- they avoid that EditEngine is requested to do reformats over and over
- they avoid that the same thing is re-measured over and over
=> drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence is now usually called much less than the gazillion times it was called between OOO310 and DEV300_m52

So, there is good reason to expect that the particular problem you are seeing is solved in newer DEV300 builds. Please retest the problem. Don't take issue summaries verbatim if they were solved by developers who don't update their issue summary lines to the root cause of the problem.

On Aug 25, 2009, at 6:09 AM, yanmin wrote:
Hi Herbert,

maybe the fix against "excessive reformatting in textboxes" (
http://www.openoffice.org/issues/show_bug.cgi?id=83553) is the one you are
looking for. The fix for that got into DEV300_m52.


It seems the performance bug reported by ssue 83553 is raised while mouse
moving because of expensive textbox reformatting. But the performance
problem I mensioned happens when creating a new presentation. And the
function drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence which is called heavily by S*drobject::RecalcBoundRect* takes 29% time during the
new presentation process from our profiling data. So a developer is
suspicious that the problem is caused by the code change of drawinglayer or
S*drobject*.

On Aug 24, 2009, at 12:16 PM, Christian Lippka wrote:

you forgot to state in which version you see the performance problem.
I think that there was already a performance fix in the area of
RecalcBoundRect but I cc'ed Armin to tell us if this is true and in
which version it is fixed.

---
Herbert Duerr
du...@sun.com




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@gsl.openoffice.org
For additional commands, e-mail: dev-h...@gsl.openoffice.org

Reply via email to