2

一部のワークロードの実行中にパフォーマンスカウンタの数値を収集したい。 これは、既存のLAPIパフォーマンスカウンタインフラストラクチャを使用して簡単に実行できます。 しかし、私はリング - の長さ オペレーティングシステムのアクセス数をカウントするハードウェアパフォーマンスカウンタ

  • 異なるリングレベルによって、L1キャッシュのロード要求の

    1. リングレベルの命令の数0,1,2,3
    2. 番号のようないくつかのより多くの統計情報が欲しいですレベルスイッチ

    私は、オペレーティングシステムとアプリケーションのメモリアクセスを効果的に区別したいと思っています。

    どうすればいいですか? PS:以前はパフォーマンスカウンターを使用していませんでした。だから、あなたにはやや些細なように思えるかもしれないことが、実際に私を助けてくれるかもしれません。ありがとう

    PS:アプリケーションの動作を変更せずにシステムの実行トレースとメモリアクセストレースを取得する方法はありますか。

  • +0

    この実験で使用したCPUは何ですか? OSとは何ですか(現代のLinuxですか?) – osgx

    +0

    ここで使用されているCPUはPentium i5プロセッサで、OSは現代的なlinux(Ubuntu最新のディストリビューション) –

    答えて

    3

    perfのようなハードウェアパフォーマンスカウンタを使用できます。

    最新のハードウェアはハードウェアパフォーマンスカウンタを備えているため、マシンにこの機能がある可能性があります。また、カーネルドライバを置く必要があるかもしれません。 (ubuntu sudo apt-getはこれのための魔法です)。

    PERFの少し説明は

    パフォーマンス・は、Linux性能測定に 離れCPUハードウェアの違いを抽象化し、 は、単純なコマンドラインインターフェースを提供ベースのシステム2.6+ Linux用のプロファイラツールである(リンク上からインポート) 。 Perfは、最近のバージョンのLinuxカーネルでエクスポートされた perf_eventsインターフェイスに基づいています。

    PERFツールは、これらのイベントは、上記のリンクに記載されている測定可能なイベント

    のリストをサポートしています。

    セイ多くのイベントのうち、あなたは以下の

    perf stat -e cycles:u -e cycles:k -e cycles dd if=/dev/zero of=/dev/null count=100000 ukは、それぞれのユーザーとカーネルの略でためcyclesイベントの統計情報を取得したいです。すべてのイベントをコンマで区切って入力することもできます。

    関連する問題