[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The New GNUstep Seems Slow

From: Eric Wasylishen
Subject: Re: The New GNUstep Seems Slow
Date: Thu, 5 May 2011 14:46:07 -0600

Sorry, this is indeed my fault.

I committed a simple fix which caches the NSCharacterSet in CairoFaceInfo and 
it seems to fix the problem. A better fix would be to cache the matched pattern 
as you said, but I think the main bottleneck is fixed.

At some point I'd like to replace most of CairoFontInfo / CairoFaceInfo with 
the new code Niels wrote for Opal, so we can stop using the cairo toy api and 
draw glyphs properly, but I'm not sure when I'll have a chance to do this.


On 2011-05-05, at 3:03 AM, Fred Kiefer wrote:

> I just run kcachegrind over the callgrind result from Ink and from that I 
> would pick out the new method [CairoFaceInfo characterSet] that Eric added on 
> the 27th of March as the culprit. On my machine this seems to use up 90% of 
> the execution time of Ink. I don't trust any profiling numbers, still this is 
> an important hint, where the slowdown might come from.
> I don't quite understand how this could happen, as this method gets called 
> only once per font. The main time there is spend in FcFontMatch, which also 
> gets called from fontFace, but doesn't result in a problem there. As it turns 
> out FcFontMatch gets called 10 times (my not so scientific numbers, invent 
> your own if you prefer) more often from characterSet than it is called from 
> fontFace and the reason for this simply is that we cache the fontFace but not 
> the characterSet. The solution should be as simple as to cache the 
> characterSet as well. Or even better, use a common cache for the resolved 
> pattern.
> Eric, what is your thinking on this? By now you are more familiar with the 
> cairo backend than I am.
> On 28.04.2011 21:03, Richard Stonehouse wrote:
>> This was with the cairo backend.
>> Rebuilds with the art and xlib backends work fine - run at the
>> expected speed.
>> The installed cairo is libcairo.so.2.10800.10 from openSUSE 11.3
>> package cairo-1.8.10-3.1.i586; gnustep-back 0.18.0 worked OK with
>> this.
>> There is another libcairo on the system, installed by vmware in one
>> of its own directories, but I'm pretty confident that gnustep-back is
>> linked against the correct libcairo and not the spurious one.
>> openSUSE 11.4, which I've downloaded but not yet installed, has a new
>> version of libcairo: /usr/lib/libcairo.so.2.11000.2 in package
>> libcairo2-1.10.2-6.9.1.i586. I'm planning to install it over the
>> weekend so will see whether the problem goes away.
>> Please let me know if there's anything else I should try.
>> On Thu, Apr 28, 2011 at 11:08:23AM +0100, Fred Kiefr wrote:
>>> I don't know about any specific reason why GNUstep should now be
>>> slower.  This seems to be an important issue to investigate.  Which
>>> bacend are you using?  A wrong backend is the most common reason
>>> for a slowdown.  If this isn't the case we need to use tools to
>>> find out where the time gets spend.  I will send a mail on this
>>> next week, when I am back home.
> _______________________________________________
> Discuss-gnustep mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep

reply via email to

[Prev in Thread] Current Thread [Next in Thread]