Re: Very slow NSTableView
Re: Very slow NSTableView
- Subject: Re: Very slow NSTableView
- From: Graham Cox <email@hidden>
- Date: Tue, 4 Jul 2017 17:18:44 +1000
> On 4 Jul 2017, at 5:00 pm, Graham Cox <email@hidden> wrote:
>
>
>> On 4 Jul 2017, at 12:29 pm, Quincey Morris
>> <email@hidden> wrote:
>>
>> On Jul 3, 2017, at 18:19 , Graham Cox <email@hidden> wrote:
>>>
>>> slow. as. molasses.
>>
>> What does Instruments say it’s doing?
>>
>
>
> Heh, well, I wish I knew.
>
> Instruments isn’t working. It’s a new machine which I set up from my older
> machine. XCode works fine, but Instruments doesn’t. I guess that just copying
> stuff over isn’t enough to install it.
>
> I’ll try downloading a new copy of Xcode and see if I can get Instruments
> working - seems it’s the only way to find out. I just wondered if anyone had
> seen this and had a quick answer.
OK, I have reinstalled Instruments using XCode 8. Fixed all the new warnings
and compilation glitches that going from XCode 7 to 8 inevitably causes, and my
app is running again.
Here’s what instruments says it’s spending all its time doing:
18.47 s 94.0% 0 s
-[NSTableView drawRowIndexes:clipRect:]
18.47 s 93.9% 0 s
-[NSTableView drawRow:clipRect:]
18.28 s 93.0% 0 s
-[NSTableView _drawContentsAtRow:column:withCellFrame:]
17.21 s 87.6% 0 s
-[NSPopUpButtonCell drawWithFrame:inView:]
7.69 s 39.1% 0 s
-[NSMenuItemCell drawWithFrame:inView:]
7.51 s 38.2% 1.00 ms
-[NSMenuItemCell drawInteriorWithFrame:inView:]
7.51 s 38.2% 0 s
-[NSMenuItemCell drawTitleWithFrame:inView:]
7.51 s 38.2% 0 s
-[NSButtonCell _configureAndDrawTitleWithRect:cellFrame:controlView:]
7.43 s 37.8% 0 s
drawTitle_withFrame_inView_
7.43 s 37.8% 0 s
-[NSPopUpButtonCell drawTitle:withFrame:inView:]
7.38 s 37.5% 0 s
_NSStringDrawingCore
7.38 s 37.5% 1.00 ms
__NSStringDrawingEngine
7.31 s 37.1% 2.00 ms
-[NSLineFragmentRenderingContext drawAtPoint:inContext:]
7.29 s 37.1% 0 s
-[CUICatalog
drawGlyphs:atPositions:inContext:withFont:count:stylePresetName:styleConfiguration:foregroundColor:]
7.26 s 36.9% 0 s
-[CUITextEffectStack
drawGlyphs:inContext:usingFont:atPositions:count:lineHeight:inBounds:atScale:]
6.86 s 34.9% 0 s
CGContextEndTransparencyLayer
The other 37% of the 87.6% is in:
7.36 s 37.4% 0 s
-[NSCell _endVibrantBlendGroup]
7.36 s 37.4% 0 s
CGContextEndTransparencyLayer
Every row of my table includes a pop-up button cell, so it seems to be this
that’s dragging it down, trying to render vibrancy effects. I should mention
that I have vibrancy turned off in my own System Prefs, but that won’t be the
case for every user. In any case, it doesn’t seem to stop the renderer trying
to composite vibrancy effects.
Is there a way to opt-out of vibrancy for an entire table view? There is no way
this table would benefit from being transparent - it’s just data, and that’s
what our customers need to work with. It doesn’t need no stinkin’ CPU-sapping
stupid special effect.
I should also mention this on the very latest i7/RX580 iMac. If this can’t
render it quickly, what chance has an older machine or laptop got?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden