9196194d76e4325c5bb0c23f22a5787a717067ed |
|
18-Mar-2017 |
Seigo Nonaka <nona@google.com> |
Compute SparseBitSet for cmap format 14 subtables. By computing cmap format 14 subtables similar to cmap format 4 or 12, there are following benefits: - FontCollection::hasVariationSelector becomes 70x faster for the worst case, 10x faster for the normal case. - FontFamily::hasGlyph becomes lock-free. - FontCollection::itemize becomes 2x faster than before for some cases. On the other hand, following negative things happen: - Initial FontFamily construction takes 2.5x longer than before, but this only happens in Zygote and should not happen at application launch time. - FontFamily construction from buffer takes longer time than before but it is still around 800µs. - Consumes additionally memory (about 30kB for NotoSansCJK-Regular.ttc of ttc index 0, 2.5kB for NotoColorEmoji.ttf), but this is shared across all applications. No additional memory is necessary if the font doesn't support variation sequences. Bug: 36401726 Test: minikin_tests passed Test: minikin_stress_tests passed Test: android.graphics.cts.PaintTest passed Merged-In: I3ebc9ad5050fb9ab6283810d31ae8d13af168ec5 Change-Id: Ia84c4b56aed35a899223e33c1a4a15734de58c33
/frameworks/minikin/tests/stresstest/FontFamilyTest.cpp
|