On Wed, 2005-12-14 at 15:26 +0100, Jean-Marc Lasgouttes wrote: > >>>>> "Bennett" == Bennett Helm <[EMAIL PROTECTED]> writes: > > Bennett> On Dec 14, 2005, at 6:26 AM, Jean-Marc Lasgouttes wrote: > >> BTW Bennett, for the next Shark profile, it would be nice to have > >> counts in addition to time %. > > Bennett> I don't see how to get both counts and time %, but I've > Bennett> posted a new profile with counts. Just in case it's helpful, > Bennett> I posted both a bottom-up and a top-down version; you can > Bennett> find them here: > > I was thinking about number of calls, but since Shark is a statistical > analyzer, it cannot tell that. So percentage is indeed better. > > The bottom up version is intriguing. I am not sure I know how to use > it. > > How long did you type to get the trace? The longer it lasts, the more > precise profile one gets. > > Also, you previous profile had a list of all functions at the end, > after the tree. It was nice. > > All in all, I do not see a clear way to improve the speed.
No... I have to agree. Let's give up for 1.4. That leaves the earlier posted lyxfunc patch as the only one worth committing IMHO. It is simple, leads to a small but noticable speedup even in Bennett's test case (but probably even more, percentage wise, in typical situations that however are not interaction-critical), is understood (it eliminates a large number of unnecessary function calls to redoParagraph and screen rendering) and seems not to have any side effects. Attached again. OK to commit? - Martin
Index: lyxfunc.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxfunc.C,v retrieving revision 1.673 diff -u -p -r1.673 lyxfunc.C --- lyxfunc.C 25 Nov 2005 09:27:08 -0000 1.673 +++ lyxfunc.C 14 Dec 2005 15:20:41 -0000 @@ -1589,7 +1589,9 @@ void LyXFunc::dispatch(FuncRequest const if (update) view()->update(Update::FitCursor | Update::Force); else - view()->update(Update::FitCursor); + if (!lyxaction.funcHasFlag(cmd.action, + LyXAction::SingleParUpdate)) + view()->update(Update::FitCursor); // if we executed a mutating lfun, mark the buffer as dirty // FIXME: Why not use flag.enabled() but call getStatus again?
signature.asc
Description: This is a digitally signed message part