私は、プロセスまたはスレッドが 2 つの時点の間に消費したエネルギー量 (ジュールなど) を推定するためのヒューリスティックを考え出そうとしています。これはモバイルではなく PC (Linux/x86) 上にあるため、統計は、同様の実時間を取る計算の相対的なエネルギー効率を比較するために使用されます。
アイデアは、サイクル カウンター、p/c 状態または動的周波数、バス アクセスなどのハードウェア統計を収集またはサンプリングし、測定間のエネルギー使用量の合理的な式を考え出すことです。私が尋ねているのは、これが可能かどうか、そしてこの式がどのように見えるかということです.
頭に浮かぶいくつかの課題:1)他のプロセス(またはスレッド)へのコンテキストスイッチを適切に説明する。
2) CPU の外部で使用されるエネルギーを適切に考慮する。I/O が無視できると仮定すると、ほとんどが RAM です。割り当て量やアクセスパターンはエネルギー使用量にどのように影響しますか? (つまり、変更されたアロケータを使用して、動的メモリ割り当てを測定する方法があると仮定します。)
3) 見積もりとしての CPU 時間の使用は、粗粒度でよく間違った計算、CPU エネルギー使用量のみに限定され、固定クロック周波数を前提としています。これには、RAM での待機に費やされた時間も含まれますが、十分には考慮されていません。