Version 12 (modified by vlado, 16 years ago) (diff) |
---|
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.656 seconds.
Task requirements
- Improve layout performance with 40%.
- Test should run in around 0.4 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
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.)