Tobias Oetiker wrote: > Wizards, > > A few months back I ported rrdtool (www.rrdtool.org) over from > libart/freetype to cairo/pango. It all went quite well and the > resulting graphs look cool. But when it comes to performance things > look realy bad. > > Creating a little test graph with rrdtool 1.2 (libart/freetype) > takes about 0.01s while the same graph with (cairo/pango) takes > 0.2s in other words, I am seeing a 20 times slow down. Creating > several graphs in the same session does not change things much. > > I have sat down with callgrind to analyze and found that 80% of the > time is spend in the > > pango_font_map_load_fontset > > function. I bet I am doing something terribly wrong here, since I > use the same font in only 2 sizes all over the graph. > > I have based my code on the example in the documentation > http://developer.gimp.org/api/2.0/pango/pango-Cairo-Rendering.html#rotated-example > but maybe this is not optimal. I tried to add some caching but it > did not help much. > > I have put a few details up on > > http://tobi.oetiker.ch/rrd_pango/ > > any ideas ?
Hi Tobias, The part creating the layout looks good. Any *interesting* thing will be hidden in other parts of the code, namely the code calling this function. In general I'm quite surprised that you are hitting the load_fontset() path all the time as the fontsets should be cached and simply reused. One way to debug it is to run with FC_DEBUG=1 and look for all different Sort Patterns passed to fontconfig and see how they differ (I'm guessing minor difference in the size). behdad > cheers > tobi > > _______________________________________________ rrd-developers mailing list [email protected] https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
