私の質問はiPhone、iPod、iPadに特有です。私はアーキテクチャが大きな違いを生み出していると考えています。私は、どこかに(おそらく様々なチップのための)仕様か、またはそれぞれの特定の命令のためにTを測定する信頼できる方法があると期待しています。私は使用されたプロセッサ時間の合計、使用されたメモリなどを測定するために任意の数のツールを使用できることを知っています。私はより低いレベルで定量化したいと思います。どのように新しいアルゴリズムの設計を最適化する操作の時間値を見つけるのですか?
私は、アルゴリズムの主要部分を何度も調べることができます。たとえば、純粋な実装ではn * (n-1)
回、もう1つはn
(最悪の場合)とn + n * (n-1)
(最悪の場合)の間を繰り返します。私はまた、命令の総数(+ - =%* /とロジックステートメント)の合理的なカウントを行うことができ、それらのカウントを比較することができますが、それは各操作の重みが同じであると仮定しています。また、私はどのように論理的なステートメント(if、else、for、for)の実際の時間値を重み付けするか考えていません...数学的演算子と比較して... "これを使って?私はこの情報がどこにあるのか知りたいです。
わかりやすくするために、私の目標は、プロセッサ時間あたりに最適なアルゴリズムを設計できるように、CPU(またはGPUまたはU)をどれくらいのプロセッサ時間を要求するかを発見することです。誰かがiOSハードウェアをどこから始めるべきかというアイディアを教えてもらえますか?
編集:This link to ClockServices.cと開発者ポータルのSIMDは、これに興味のある方にとっては良いスタートになるかもしれません。今夜はもう少しコーヒーを飲みたいかもしれません;)
私が評価したいと思っているもののほとんどはCです。私はそれに満足しています。しかし、NSArrayを使って反復するコストを知ることは良いことです。それは複雑で変わる可能性があるように聞こえる。私はどれくらいのことが分かるかわかりません...確かに基本的なCの操作を解決します;) – Rab
ええ、私はそれを考えましたが、それはいいコメントです。私はあなたのようにテストを実行することを考えましたが、私は結果について2つの懸念があります。一つは、私のテストは何らかの方法で素朴なものになるということです。コンパイラが何か違うことをするときには、それが成り立たない情報について多くの作業をします。第二に、私はいくつかのデバイスがあり、いくつかは異なるチップを持っています。だから、私の大切な希望は、特定のプロセッサーのC操作の時間的価値について、近い見積もりのグラフを持っている人がいるかもしれないということです。 – Rab
NSArrayコメントから派手な話をしました。私はNSArrayが私または何かでブルースクリーンされないことを願っています;) – Rab