これは非常にコストのかかる機能であり、私のパフォーマンスを足元から奪いますか? ホーム画面の揺れるボタン+コアアニメーションにそれを使用したと思います。時間を無駄にする前に知りたいです;)
5 に答える
パフォーマンスの問題になる可能性は低いようです。コサイン、サイン、およびいくつかの乗算のようなものになります。1秒間に何千回も呼び出さないでください。大丈夫です。
非常に(非常に)少し。これは、自分で簡単に測定できるものでもあります。高解像度タイミングの実装に関する例/情報については、次の URL を参照してください。
すべての場合と同様に、それはあなたがそれをどのようにそしてどれだけ使用するかに依存します。iPhoneが非常に適しているゲーム開発で常に使用されています。CoreAnimationも非常に高速です。心配な場合は、Appleが提供するサンプルアプリの1つを取得し、Instrumentsで実行して独自のベンチマークを実行し、ニーズに合っているかどうかを確認することをお勧めします。
CGAffineTransformMakeRotation() が行うのは、通常の古い CGAffineTransform の行列を埋めることだけです。自分でマトリックスをより速く満たす (または事前に満たす) ことができると思われる場合は、それを実行してください (これがまだ非常に最適化されていない場合、私は本当に驚かれることでしょう)。
次に、変換を適用する実際の作業を行うときが来たら、GPU がそれを処理するように指示されているので、高速に実行され、メイン CPU に大きな負荷がかかることはありません。
本当に心配なら、OpenGL の上で 2D 空間で変換を行い、ハードウェアが最適化されていることを確認してください。
時間を無駄にする前に知りたい
個々のラインではなく、システムを最適化します。コードが変換を呼び出す回数は誰にもわかりません。システム全体を動作させ、プロファイルを作成してから、遅すぎる部分を最適化することをお勧めします。
人々が遅いと言う個々の通話について心配する必要はありません。コードが遅い場合は、この情報をポインタとして使用しますが、コード内で がどのように動作するかを常に確認してください。