私の質問は、iPhone、iPod、および iPad に固有のものです。アーキテクチャが大きな違いを生むと想定しているためです。どこかに(おそらくさまざまなチップの)仕様があるか、特定の命令ごとに T を測定する信頼できる方法があることを願っています。プロセッサの総使用時間や使用メモリなどを測定するために、いくつものツールを使用できることはわかっています。より低いレベルで定量化したいと考えています。
これで、アルゴリズムの主要部分を何回通過したかを知ることができました。たとえばn * (n-1)
、単純な実装では時間を反復し、別の実装ではn
(最良の場合) とn + n * (n-1)
(最悪の場合) の間を反復します。また、命令 (+ - = % * /、および論理ステートメント) の総数を合理的にカウントし、それらのカウントを比較することもできますが、それは各操作の重みが同じであると仮定した場合です。また、論理ステートメント(if、else、for、while)と数学演算子の実際の時間値を重み付けする方法がわかりません...毎回「+」と同じくらい「if」ですこれを使って?この情報がどこにあるのか知りたいです。
したがって、明確にするために、私の目標は、CPU (または GPU または任意の U) にどれだけのプロセッサ時間を要求しているかを調べて、プロセッサ時間に最適なアルゴリズムを設計できるようにすることです。iOS ハードウェアをどこから始めたらよいか教えてもらえますか?
編集:開発者ポータルのClockServices.cと SIMD へのこのリンクは、これに興味のある人にとっては良い出発点かもしれません。今夜、あと数杯コーヒーを飲めば乗り切れるかもしれません ;)