WOFF2への変換にかかる時間

自前でビルドすることによってwoff2_compress.exeを手に入れたので、ウェブサイトのビルドに組み込もうと考えていたが、微妙そうだということがわかった。まず元となるファイルが更新されることがあまりないこともそうだが、WOFF2への変換にかなり時間を取られるということが大きい。

実際にどれくらい遅いのだろうか。Surce Sans ProとM+ 1p、そしてSource Han Sans JPの変換にかかる時間を、timeコマンドを使って計測したところ、以下のような結果になった。

$ . ./convert.sh
Processing SourceSansPro-Regular.ttf => SourceSansPro-Regular.woff2

real    0m22.593s
user    0m0.000s
sys     0m0.015s

Processing mplus-1p-regular.ttf => mplus-1p-regular.woff2

real    1m21.508s
user    0m0.000s
sys     0m0.015s

Processing SourceHanSansJP-Regular.otf => SourceHanSansJP-Regular.woff2

real    30m50.434s
user    0m0.000s
sys     0m0.015s

ファイル・サイズが増えるにつれ変換に大きな時間がかかっていることがわかる。Source Sans Proでも厳しく、M+ 1pで限界、Source Han Sans JPに至っては言語道断という結果だ。WOFFへの変換は概ね高速(数秒)に終わるため、WOFF2で採用された新圧縮アルゴリズムBrotliでの再圧縮に時間がかかっているということだろう。

とてもではないがウェブサイトのビルドに組み込める速度ではない。ファイル・サイズに応じて組み込むかどうか考えるという手もあるだろうが、どのあたりをしきい値とするかで悩むことにもなりそうだ。上述のようにあまり頻繁に更新されるわけではないので、必要な際にバッチ処理してやるくらいで十分だと言えそうだ。