直感に反する最適化:Skiaにおけるパスの結合を高速化
2025-01-01
著者は、Skiaを使用して多数のベクトルグラフィックスパスの結合操作を実行する際に、パフォーマンスのボトルネックに遭遇しました。パスを反復的に結合する初期のナイーブなアプローチは遅く、Skiaのパスパルダーが最適化を提供したものの、十分な速度ではありませんでした。Skiaのパスの操作の内部の詳細を深く掘り下げることで、各パスの曲線の数がパフォーマンスに大きく影響することが判明しました。パスの結合をより小さな間隔に分割し、分割統治戦略を再帰的に適用することで、著者は大幅な高速化を達成し、最終的にSkiaのデフォルトの方法を上回りました。驚くべきことに、この方法による結合操作の数の増加は、より高速な処理をもたらしました。