2

Is there a cross platform C API that can be used to get system usage metrics?

4

4 に答える 4

2

私は以前にlibstatgrabを使用しました。Cygwinを介して主要なUnixライクなバリアントとWindowsの非常に便利なシステム統計を取得します(おそらく-試したことはありません)。OSが異なれば、動作も大きく異なります。特に使用状況の指標に関しては、必要なものを取得するのが難しい場合があります。「空きメモリ」のような単純なサウンドでさえ、クロスプラットフォームの方法で動作するのは難しい場合があります。少し絞り込んでいけば、何か見つけられるかもしれません。

于 2010-02-13T02:19:15.370 に答える
2

収集するメトリクスによっては、 PCP (Performance Co-Pilot)を検討することをお勧めします。これは、Silicon Graphics で開発されたオープンソースのパフォーマンス フレームワークであり、膨大な数のソースから膨大な数の可能なメトリックを収集して照合し、どこからでも監視できるようにします。

基本的に、PCP では、システムに別の「レイヤー」を追加する必要があります。たとえば、それぞれに PCP がローカルにインストールされた混合 OS マシンの分散クラスターを監視する場合があります。一連の「エージェント」が各マシンのパフォーマンス データを収集し、コードで libpcp を使用して必要に応じてこれらのメトリックを収集できます。

正確な使用シナリオを知らずに言うのは難しいです (エンドユーザーのマシンでシームレスに実行されているものについて話している場合、PCP は適していない可能性がありますが、制御するマシンを監視し、PCP サービスを喜んで実行する場合)それらでは、それは素晴らしい解決策です)。

私たちは PCP を非常に喜んで使用して、Windows および Linux ボックスからメトリックを収集し、アプリケーションから内部メトリックを収集し、それらすべてを一元的にログに記録し、レポートし、傾向を監視します。

于 2010-02-14T05:37:32.793 に答える
2

残念ながら違います。

C 標準は、動的割り当て、文字列操作、数学、およびテキスト I/O にかなり制限されています。それを超えると、OS API が必要になります。これは、定義上、OS 固有であり、クロスプラットフォームではありません。

于 2010-02-13T01:27:04.490 に答える