私のコードを発行し、次のようになる -ベジェパスなでるパフォーマンスが
[[NSColor whiteColor] set];
// `path' is a bezier path with more than 1000 points in it
[path setLineWidth:2];
[path setLineJoinStyle:NSRoundLineJoinStyle];
[path stroke];
// some other stuff...
は楽器の時間プロファイリングツールを実行するには、私のアプリは、時間最後の行[path stroke]
を行うための93.5パーセントを費やしている、とQuartzデバッガが告げる私に語りました私のアプリは10fps以下でしか動かない(別のビューはその上の位置を変えても常に更新を引き起こしている)。
ベジェパスを描画するパフォーマンスを向上させる方法を探していますが、1000ポイントを超えるパスは> 60fpsで非常に高速に描画されることがありますが、極端な場合にはポイントがあまりにも遠すぎる(または濃すぎる?)と、パフォーマンスが実際には低迷します。
私はこれについて何ができるのか分かりません。私は、ビットマップの担当者としてビューをキャッシュすると便利だと思うが、それは本当にライブのサイズ変更に役立つことはできません。
編集:[path setLineWidth:2];
という行をコメントアウトするのは確かに役立ちますが、パスは実際にはあまりにも薄すぎます。
CALayerオブジェクトを使用していただきありがとうございます。私はライブのサイズが変わるまでキャッシュのパスを行いますが、CPUは実際に数学をするのが速いですが、パスのストロークがコンピュータにストロークを引き起こしています。 – koo