From: Daniel A. S. <st...@ic...> - 2006-03-21 06:28:57
|
On 21/03/2006, at 10:35, Daniel A. Steffen wrote: > On 21/03/2006, at 6:01, Jeff Hobbs wrote: > >>> So, I have to ask, what exactly are we waiting for before >>> committing this to cvs (at least to the 8.5 development >>> branch)? Looking through the tracker, it seems we just wanted >>> Jeff to sign off on it. Perhaps I'll drop him a line... >> >> Jeff is always lurking on the line. ;) >> >> As Vince has given the thumbs up, I will commit to the 8.5 HEAD >> using Benny's patch tomorrow (PST), if there are no other >> objections. This will get it into 8.5a4. > > you should test tkchat with this, with large buffers, that's what > killed my plan to commit last the atsui patch time around, see > below. I'll try to run a few test myself with the new patch later > today. I see the same performance issues as previously with tkchat (latest kit from sdarchive): while loading 1000 lines of chat history, text layout is so slow that it leads to spinning cursor and loss of app responsiveness on my 1GHz G4. This is no doubt due to the continuous re-layouts of tkchat's complex text widget (w/embedded smileys, bold fonts etc) during history loading, but this is something that the QD based text code handles with no trouble. I sharked an optimized unstripped tktest during the history loading phase of tkchat, results below, 92% of total CPU time is spent measuring text, with ATSUNextCursorPosition and ATSUOffsetToPosition being the individual APIs using the most time. Actually drawing the text uses a magnitude less time than measuring it (which is certainly at least partially due to caching by ATSUI) I'll have a more detailed look at TkMacOSXQuarzStartDraw, superficially it appears that it should be easy to improve its performance somewhat with added caching. Despite this, I support committing this to HEAD now, so that others can test if performance is really a major issue in practice, esp since no work has been done on performance since I first reported the issue almost 2 years ago... however, I would hold off on committing to core-8-4-branch until we have a better idea about the performance impact. I have attached an updated patch for HEAD to SF patch 638966 which fixes a number of (mostly cosmetic) small issues with Benny's patch: non-stub exports, printing to stderr, function naming conventions, whitespace, xcode project additions... If there are no objections, I'm happy to commit this along with some other changes that came up while looking into Benny's patch in detail, or Jeff, feel free to commit my patch whenever convenient, my other changes are minor... Cheers, Daniel -- ** Daniel A. Steffen Dept. of Mathematics ** ** Macquarie University NSW 2109 Australia ** Shark: system libraries charged to callers Self Total Lib 42.5% 42.5% tktest TkpMeasureCharsInContext 31.8% 31.8% tktest MeasureStringWidth 13.4% 13.4% tktest TkMacOSXQuarzStartDraw 3.4% 3.4% tktest TkpMacOSXLayoutSetString 1.3% 1.3% tktest TkMacOSXQuarzEndDraw Shark: system libraries flattened Self Total Lib 26.1% 26.1% QD ATSUNextCursorPosition 0.0% 26.1% tktest TkpMeasureCharsInContext 23.4% 23.4% QD ATSUOffsetToPosition 0.0% 23.4% tktest MeasureStringWidth 8.8% 8.8% QD ATSUBreakLine 0.0% 8.8% tktest TkpMeasureCharsInContext |