On Thursday, January 17, 2013, Cedric BAIL wrote: > On Thu, Jan 17, 2013 at 9:37 PM, Gustavo Sverzut Barbieri > <barbi...@profusion.mobi <javascript:;>> wrote: > > On Thursday, January 17, 2013, Cedric BAIL wrote: > >> On Thu, Jan 17, 2013 at 7:28 PM, Gustavo Sverzut Barbieri > >> <barbi...@profusion.mobi <javascript:;> <javascript:;>> wrote: > >> > On Thursday, January 17, 2013, Enlightenment SVN wrote: > >> >> Log: > >> >> efl: stupid micro optimization. > >> >> > >> >> This single test accounted for 1% of my terminology benchmark. > >> >> I am considering moving evas_string_char_next_get and > >> >> eina_unicode_utf8_get_next to become inline as their function > >> >> entry/exit point account for 3% of the same benchmark. > >> >> > >> >> The biggest win would be to get rid of the memcpy > _termpty_text_copy > >> >> that account for 16%. > >> >> > >> >> In the micro optimization part, we also still do to much malloc > >> >> in font_draw_prepare as we don't recycle the array there and > account > >> >> for 3% of the benchmark in malloc/free there. In the same ballpark > >> >> _text_save_top account for 2% of the time in malloc/free. > >> >> > >> >> In that same benchmark, evas_object_textgrid_render account for 5% > >> >> where 4% of its time is spend in evas_common_font_draw_prepare. At > >> this > >> >> point I am not sure that rewriting textgrid is gona help us at > all. We > >> >> will win almost as much by just inlining the get_next things in > evas > >> >> and eina for a minute of development time. > >> > > >> > It's a bit naive to think so, because you'd be able to change the > >> algorithm > >> > and avoid conversions. All in all you could just give engine the same > >> array > >> > that terminology fills (cell row array), together with region and > context > >> > (clipper, cutouts) and glyph bitmap. > >> > > >> > Particularly the glyph bitmap could be optimized as its an int hash, > but > >> we > >> > know A-Za-z0-9 ate hot, we could have ASCII printable range in an > array > >> > while everything else goes to a hash > >> > >> Time spend in evas_common_font_draw 4%. Time spend in > >> evas_object_textgrid_*: > 2%. > >> Time spend in _cb_fb_read : 82% with evas_string_char_next_get being > >> 15% and memcpy 18%. > >> > >> I don't see how optimizing textgrid is going to change this number at > all. > > > > You'd not be doing these at all. That's why/how. > > What do you mean by "these" ? I am going to redo the benchmark with > perf on another computer to see if there is something else.
These calls. If you do the way I imagine you give the screen (array of cells) to the render much like the way you give pixels to image. There is no need to call a bunch of things, like no need to create the text props and such. All you need is the cell info (palette index and attributes), the palette contents and a way to convert Unicode -> bitmap. > -- > Cedric BAIL > > > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. ON SALE this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122712 > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net <javascript:;> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Gustavo Sverzut Barbieri http://profusion.mobi embedded systems -------------------------------------- MSN: barbi...@gmail.com Skype: gsbarbieri Mobile: +55 (19) 9225-2202 ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_122712 _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel