[[BackLinksMenu]] [[TicketQuery(summary=SMOOTH_TEXT_RENDERING_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == * The purpose of this task is to improve text rendering in terms of time performance. * Main focus * Improve the text layout itself * Improve how and when text layout is used (when the text is reflowed, etc.) * LayoutBuilderTest is used to measure the time of laying out text that exactly fills a frame with standard size (width: 280p, height: 210p). * Test runs in around 0.5 seconds. == Task requirements == * Improve layout performance with 40%. * Test should run in around 0.3 seconds. == Task result == * The result of this task is code == Implementation idea == * Ratings of performance improvement solutions: * Hardness: 1(easiest) - 4(hardest) * Expected effectiveness: 4(smallest) - 1(biggest) * Rated possibilities to improve the layout algorithm: * Improve logging - (hardness)1 + (effectiveness)2 = (cumulative)3 * Implement the issues commented as "performance" - 2 + 3 = 5 * Improve badness calculation - 3 + 3 = 6 * Refactor badness - 4 + 3 = 7 * Memoization (part of a path, edge, etc.) - 4 + 1 = 5 * Check for existing useless updates and reflowing (e.g. selecting the frame with highest z-order) - 2 + 3 = 5 * Check for large ammounts of objects cloning - 2 + 3 = 5 * During design and implementation handle the improvement possibilities in the order of the least cumulative rating. == Related == [wiki:WRAPPING_TEXT_RENDERING_R0] == How to demo == = Design = = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = = Comments = ^(Write comments for this or later revisions here.)