私は、アプリの主要部分の持続時間の間継続的に実行されるiPhone 4+の高精度コアモーションレディング(可能であれば> 100Hz)とモーション解析を行いたいと考えています。モーションレスポンスと解析コードが送信する信号は、できるだけ遅れなくてもかまいません。CoreMotionのNSThread、NSOperation、またはGCDと正確なタイミングの目的は?
私の元の計画は、メトロノームプロジェクトのコード(Accurate timing in iOS)に基づいて専用のNSThreadを起動し、モーションアナライザがそのスレッドをリンクして使用するプロトコルでした。 GCDやNSOperationのキューが優れているのかどうか疑問に思っていますか?
多読の後で私の印象は、規則的な間隔で繰り返し実行される少数の操作ではなく、一定量の個別の一回限りの操作を処理するように設計されており、不注意に多くのスレッド作成/破壊のオーバーヘッドを作ります。誰もここに経験はありますか?
私はまた、スレッド内の無限のwhileループ(上記のリンクのコードなど)のパフォーマンスへの影響について疑問を抱いています。どのように物事はスレッドでボンネットの下で動作するのか誰かが知っていますか? iPhone4はシングルコアプロセッサであり、さまざまなタイミングとI/O要求に基づいてスレッドを切り替えて並列処理の効果を作り出すインテリジェントなマルチタスキング(プリエンプティブ?)を使用しています...
単純な「while」ループが無限に実行され、ミリ秒ごとに追加作業しか行わないスレッドがある場合、プロセッサの切り替えアルゴリズムは無限ループをリソースの「高い需要」とみなし、他のスレッドや追加のコード実行間の「ダウンタイム」において、他のスレッドに対してリソースをより重く割り当てることは十分にスマートですか?
ご協力いただきありがとうございます。
ありがとうございました。これらのリンクには、CoreMotionが別のスレッドで追加の計算を行うなど、有用な情報がありました。まだ誰かが知っているなら、質問の一般的なスレッドの側面についてもっと知りたいです... –