1*2d1272b8SAndroid Build Coastguard Worker# Introduction 2*2d1272b8SAndroid Build Coastguard Worker 3*2d1272b8SAndroid Build Coastguard WorkerSubset preprocessing is a mechanism which can significantly speed up font subsetting operations. 4*2d1272b8SAndroid Build Coastguard WorkerIt works by prepopulating datastructures from the source font which can be used in later subsetting 5*2d1272b8SAndroid Build Coastguard Workeroperations to more quickly produce the subset. Preprocessing is useful in cases where multiple subsets 6*2d1272b8SAndroid Build Coastguard Workerwill be cut from the same source font. 7*2d1272b8SAndroid Build Coastguard Worker 8*2d1272b8SAndroid Build Coastguard Worker# Usage 9*2d1272b8SAndroid Build Coastguard Worker 10*2d1272b8SAndroid Build Coastguard Worker```c++ 11*2d1272b8SAndroid Build Coastguard Workerhb_face_t* preprocessed = hb_subset_preprocess (source_face); 12*2d1272b8SAndroid Build Coastguard Worker 13*2d1272b8SAndroid Build Coastguard Worker... 14*2d1272b8SAndroid Build Coastguard Worker 15*2d1272b8SAndroid Build Coastguard Workerhb_face_t* subset = hb_subset_or_fail (preprocessed, subset_input); 16*2d1272b8SAndroid Build Coastguard Worker``` 17*2d1272b8SAndroid Build Coastguard Worker 18*2d1272b8SAndroid Build Coastguard Worker# Additional Details 19*2d1272b8SAndroid Build Coastguard Worker 20*2d1272b8SAndroid Build Coastguard Worker* A subset produced from a preprocessed face should be identical to a subset produced from only the 21*2d1272b8SAndroid Build Coastguard Worker original face. The preprocessor does not change the functionality of the subsetter, just speeds 22*2d1272b8SAndroid Build Coastguard Worker things up. 23*2d1272b8SAndroid Build Coastguard Worker 24*2d1272b8SAndroid Build Coastguard Worker* The preprocessing operation may take longer than the time it takes to produce a subset from the 25*2d1272b8SAndroid Build Coastguard Worker source font. Thus the main performance gains are made when a preprocessed face is reused for 26*2d1272b8SAndroid Build Coastguard Worker multiple subsetting operations. 27*2d1272b8SAndroid Build Coastguard Worker 28*2d1272b8SAndroid Build Coastguard Worker* Currently the largest performance gains are seen when using a preprocessed face for CFF subsetting. 29*2d1272b8SAndroid Build Coastguard Worker 30*2d1272b8SAndroid Build Coastguard Worker* The preprocessed face may contain references to the memory backing the source face. If this memory 31*2d1272b8SAndroid Build Coastguard Worker is fully owned by a harfbuzz hb_blob_t* then it will automatically be kept alive for the lifetime 32*2d1272b8SAndroid Build Coastguard Worker of the preprocessed face. However, if this memory is not fully owned by a harfbuzz hb_blob_t* then 33*2d1272b8SAndroid Build Coastguard Worker it is necessary to ensure that the memory is kept alive for the lifetime of the preprocessed face. 34*2d1272b8SAndroid Build Coastguard Worker 35*2d1272b8SAndroid Build Coastguard Worker 36*2d1272b8SAndroid Build Coastguard Worker# Performance Improvements 37*2d1272b8SAndroid Build Coastguard Worker 38*2d1272b8SAndroid Build Coastguard WorkerHere is the performance difference of producing a subset with a preprocessed face vs producing 39*2d1272b8SAndroid Build Coastguard Workera subset with the source face: 40*2d1272b8SAndroid Build Coastguard Worker 41*2d1272b8SAndroid Build Coastguard WorkerBenchmark | Delta Time (%) 42*2d1272b8SAndroid Build Coastguard Worker----------|----------------- 43*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/10_median|-56% 44*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/64_median|-33% 45*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/512_median|-28% 46*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/1000_median|-11% 47*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/nohinting/10_median|-56% 48*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/nohinting/64_median|-33% 49*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/nohinting/512_median|-21% 50*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Roboto-Regular.ttf/nohinting/1000_median|-9% 51*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/10_median|-67% 52*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/64_median|-48% 53*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/512_median|-21% 54*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/4096_median|-9% 55*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/nohinting/10_median|-66% 56*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/nohinting/64_median|-50% 57*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/nohinting/512_median|-8% 58*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Amiri-Regular.ttf/nohinting/4096_median|-9% 59*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/10_median|-85% 60*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/64_median|-71% 61*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/512_median|-3% 62*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/1400_median|4% 63*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/nohinting/10_median|-84% 64*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/nohinting/64_median|-72% 65*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/nohinting/512_median|0% 66*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoNastaliqUrdu-Regular.ttf/nohinting/1400_median|0% 67*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/10_median|-30% 68*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/64_median|-24% 69*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/512_median|-3% 70*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/1000_median|-3% 71*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/nohinting/10_median|-30% 72*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/nohinting/64_median|-24% 73*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/nohinting/512_median|-3% 74*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/NotoSansDevanagari-Regular.ttf/nohinting/1000_median|-5% 75*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/10_median|-96% 76*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/64_median|-90% 77*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/512_median|-74% 78*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/4096_median|-25% 79*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/10000_median|-23% 80*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/nohinting/10_median|-95% 81*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/nohinting/64_median|-90% 82*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/nohinting/512_median|-73% 83*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/nohinting/4096_median|-24% 84*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/Mplus1p-Regular.ttf/nohinting/10000_median|-11% 85*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/10_median|-84% 86*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/64_median|-77% 87*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/512_median|-70% 88*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/4096_median|-80% 89*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/10000_median|-86% 90*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/10_median|-84% 91*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/64_median|-78% 92*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/512_median|-71% 93*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/4096_median|-86% 94*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/nohinting/10000_median|-88% 95*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/10_median|-59% 96*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/64_median|-55% 97*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/512_median|-67% 98*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/2000_median|-68% 99*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/nohinting/10_median|-60% 100*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/nohinting/64_median|-58% 101*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/nohinting/512_median|-72% 102*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/SourceSansPro-Regular.otf/nohinting/2000_median|-71% 103*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/AdobeVFPrototype.otf/10_median|-70% 104*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/AdobeVFPrototype.otf/64_median|-64% 105*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/AdobeVFPrototype.otf/300_median|-73% 106*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/AdobeVFPrototype.otf/nohinting/10_median|-71% 107*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/AdobeVFPrototype.otf/nohinting/64_median|-68% 108*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/AdobeVFPrototype.otf/nohinting/300_median|-72% 109*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/10_median|-90% 110*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/64_median|-82% 111*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/512_median|-31% 112*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/4096_median|-9% 113*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/6000_median|-22% 114*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/nohinting/10_median|-88% 115*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/nohinting/64_median|-83% 116*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/nohinting/512_median|-31% 117*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/nohinting/4096_median|-16% 118*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/MPLUS1-Variable.ttf/nohinting/6000_median|-18% 119*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/10_median|-44% 120*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/64_median|-18% 121*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/512_median|-2% 122*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/900_median|-6% 123*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/nohinting/10_median|-45% 124*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/nohinting/64_median|-17% 125*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/nohinting/512_median|-15% 126*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_glyphs/RobotoFlex-Variable.ttf/nohinting/900_median|-3% 127*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/10_median|-20% 128*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/64_median|-16% 129*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/512_median|-12% 130*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/1000_median|-10% 131*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/nohinting/10_median|-24% 132*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/nohinting/64_median|-14% 133*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/nohinting/512_median|-15% 134*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Roboto-Regular.ttf/nohinting/1000_median|-9% 135*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/10_median|-51% 136*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/64_median|-37% 137*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/512_median|-12% 138*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/4096_median|-1% 139*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/nohinting/10_median|-49% 140*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/nohinting/64_median|-35% 141*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/nohinting/512_median|-6% 142*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Amiri-Regular.ttf/nohinting/4096_median|-1% 143*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/10_median|-82% 144*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/64_median|-9% 145*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/512_median|0% 146*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/1400_median|0% 147*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/10_median|-82% 148*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/64_median|-13% 149*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/512_median|-3% 150*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoNastaliqUrdu-Regular.ttf/nohinting/1400_median|2% 151*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/10_median|-40% 152*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/64_median|-26% 153*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/512_median|-5% 154*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/1000_median|3% 155*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/nohinting/10_median|-43% 156*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/nohinting/64_median|-24% 157*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/nohinting/512_median|-2% 158*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/NotoSansDevanagari-Regular.ttf/nohinting/1000_median|2% 159*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/10_median|-83% 160*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/64_median|-67% 161*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/512_median|-39% 162*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/4096_median|-20% 163*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/10000_median|-25% 164*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/10_median|-83% 165*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/64_median|-65% 166*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/512_median|-42% 167*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/4096_median|-34% 168*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/Mplus1p-Regular.ttf/nohinting/10000_median|-21% 169*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/10_median|-69% 170*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/64_median|-69% 171*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/512_median|-70% 172*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/4096_median|-84% 173*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/10000_median|-83% 174*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10_median|-71% 175*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/64_median|-68% 176*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/512_median|-70% 177*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/4096_median|-86% 178*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceHanSans-Regular_subset.otf/nohinting/10000_median|-88% 179*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/10_median|-45% 180*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/64_median|-48% 181*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/512_median|-57% 182*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/2000_median|-66% 183*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/nohinting/10_median|-43% 184*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/nohinting/64_median|-50% 185*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/nohinting/512_median|-63% 186*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/SourceSansPro-Regular.otf/nohinting/2000_median|-72% 187*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/AdobeVFPrototype.otf/10_median|-69% 188*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/AdobeVFPrototype.otf/64_median|-66% 189*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/AdobeVFPrototype.otf/300_median|-74% 190*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/AdobeVFPrototype.otf/nohinting/10_median|-70% 191*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/AdobeVFPrototype.otf/nohinting/64_median|-71% 192*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/AdobeVFPrototype.otf/nohinting/300_median|-75% 193*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/10_median|-66% 194*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/64_median|-46% 195*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/512_median|-15% 196*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/4096_median|-5% 197*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/6000_median|-16% 198*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/10_median|-66% 199*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/64_median|-45% 200*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/512_median|-14% 201*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/4096_median|-11% 202*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/MPLUS1-Variable.ttf/nohinting/6000_median|-27% 203*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/10_median|-38% 204*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/64_median|-9% 205*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/512_median|-3% 206*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/900_median|-16% 207*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/nohinting/10_median|-39% 208*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/nohinting/64_median|-12% 209*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/nohinting/512_median|-4% 210*2d1272b8SAndroid Build Coastguard WorkerBM_subset/subset_codepoints/RobotoFlex-Variable.ttf/nohinting/900_median|-2% 211*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/10_median|-68% 212*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/64_median|-45% 213*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/512_median|-18% 214*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/4096_median|-2% 215*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/6000_median|4% 216*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/nohinting/10_median|-69% 217*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/nohinting/64_median|-46% 218*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/nohinting/512_median|-11% 219*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/nohinting/4096_median|4% 220*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/MPLUS1-Variable.ttf/nohinting/6000_median|-5% 221*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/10_median|-34% 222*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/64_median|-12% 223*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/512_median|6% 224*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/900_median|-6% 225*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/nohinting/10_median|-33% 226*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/nohinting/64_median|-11% 227*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/nohinting/512_median|3% 228*2d1272b8SAndroid Build Coastguard WorkerBM_subset/instance/RobotoFlex-Variable.ttf/nohinting/900_median|0% 229