googlefonts / googlefonts/oxidize
Gain a better sense of the sub-operations involved in font compilation and their timing
- Dominant language
- No language data
- Stars
- 351
- Forks
- 13
- PR merge metrics
- No merged PRs in 30d
Description
Issue #25 gave us an overall picture of the distribution of compilation times, but in order to identify the most profitable spots for optimisation, we need a profile of font compilation based on the distinct operations involved:
* How much of the build is taken up with Glyphs-to-UFO conversion?
* How long does cubic-to-quadratic curve conversion take?
* What percentage of build time is the binary font merge?
* What percentage of *that* is gvar generation and optimization?
* ...
* And how do all of these timings vary by glyph count and master count?
We've had attempts in the past to profile fontmake, but this has generally happened on the function level rather than on the macro "operation" level. ("Just throw a profiler at it".) This is relatively difficult to interpret as information gets lost in the weeds. I want a high level report which looks more like this:
```
Glyphs to UFO conversion: 30s (6%)
...
```
There is some timing code in fontmake (but not in ufo2ft), so it's a matter of expanding that, adding semantic information ("What is operation is this code performing?"), and then running it on our Noto test rig and collating the data.
Contributor guide
Assessment
This issue has not been assessed yet.