Linuxのパフォーマンスカウンタは、新しいカーネル・ベースのサブシステムであります

  パフォーマンス分析とコードの最適化:システムレベルのパフォーマンスの最適化は、一般的に、2つの段階を含みます。
  目標性能分析は、パフォーマンスの問題やホットコードを識別し、パフォーマンスのボトルネックの原因を特定することです。
  コード最適化の目標は、特定のパフォーマンスの問題のためのコードやコンパイルオプションを最適化し、ソフトウェアの性能を向上させることです。
  パフォーマンス分析段階では、このようなのようなパーフォレーションなどの従来の分析ツールを使用する必要があります。コード最適化フェーズでは、多くの場合、我々は、様々な命令の実行順序をアレンジ、シンプルかつ効率的な開発者の経験で書かれたコード、アセンブリレベルでの様々なコマンドであっても合理的な利用を使用する必要があります。
  パフォーマンスは、Linuxのパフォーマンス分析ツールパフォーマンスカウンタは、ハードウェア(CPU、パフォーマンス監視ユニット)機能およびソフトウェア(ソフトウェアカウンタ、追跡点)の関数として、パフォーマンス分析のためのフレームワークを提供する新しいLinuxカーネルベースのサブシステムです。
  パフォーマンスは、パフォーマンス統計のためのポイントやカウンターを追跡し、カーネルにPMUを使用するアプリケーションを可能にします。それはまた、コアの問題のパフォーマンスを分析するために使用することができ、アプリケーション(各スレッド)パフォーマンスの問題を分析し、開発することができないだけ。もちろん、私の同僚は、完全にアプリケーション内のパフォーマンスのボトルネックを理解するために、アプリケーションとカーネルを分析することができます。
  PERFハードウェアは、イベント解析プログラム中に使用することができる、そのような障害、プロセッサ・クロック・サイクルのような命令を実行しています。あなたは、このようなページエラーとプロセススイッチングとしても、時間解析ソフトウェア、することができます。
  PERFは、包括的な分析ツール、システムからのプロセス・スレッドレベル、さらに機能およびアセンブリレベルへのグローバルなパフォーマンスです。
  PERFは武器の18種類を提供しています、あなたはメスか慎重に分析して削除するには、大きなナイフを使用することができます。
  1.背景
  1.1追尾点
  追跡フック点は、カーネルのソースコード中に分散されている特定のコードの実装でトリガすることができ、それは、トレース/デバッグツールの様々な使用することができます。
  PERFは、記録時間を生成し、ポイントを追跡するレポートを生成します。これらのレポートを分析することで、1は、プログラムの様々な詳細は、カーネルで実行され、そして症状のパフォーマンスは、正確な診断を行うことが理解できます。
  追跡ポイント/ SYS /カーネル/デバッグ/トレースにあり、これらの各ノードのsysfs /イベントのディレクトリを。
  ハードウェアと1.2キャッシュが特徴
  非常に高速なメモリの読み取りと書き込みを、まだプロセッサ命令の実行速度と比較することはできません。メモリから命令およびデータを読み出すためには、そのプロセッサ時間を待つプロセッサの必要性は、非常に長いです。キャッシングは非常に速く読み、スタティック・ランダム・アクセス・メモリの書き込み速度、プロセッサを一致させることができるです。このように、キャッシュに保存されている一般的なデータは、プロセッサは、このようにパフォーマンスが向上し、待つ必要はありません。一般的にキャッシュのサイズが小さい、キャッシュは非常に重要な部分のソフトウェアのチューニングの完全な利点があります。2の主な焦点
  性能ベースの分析は、最適化することができる(空間の複雑さと時間の複雑性のトレードオフ)とコードの最適化(増加実行速度やメモリフットプリントを減らす)アルゴリズム。
  そのようなアクセス数キャッシュの各レベル、回数キャッシュミスの各レベル、パイプラインのストールサイクル、FSBアクセスなどのハードウェア資源の使用のための評価手順。
  評価手順、システムコール、コンテキストスイッチおよびオペレーティングシステムリソースのタスクマイグレーションの使用。
  :イベントは、3種類に分類することができる
  ハードウェアPMUユニットによって生成されたイベント、および特定の条件下が生じるか否かを検出し、パフォーマンス・イベントの数。たとえば、キャッシュがヒット。
  ソフトウェアイベントは、カーネルおよびオペレーティングシステムのパフォーマンスイベントに関連するものなど、さまざまな機能モジュール、内のイベントの分布によって生成されます。例えば、切替処理、スケール番号。
  ポイントイベントを追跡することは、静的なカーネルトレースポイントによってトリガしたイベントです。このようなスラブ・アロケータに割り当てられた番号のような行動内容を実行中カーネル用決定追尾点。
あなたは、インターネット上の問題がある場合は、あなたが私に尋ねることができ、ありがとうございました!あなたが一緒に人工知能を勉強したい場合は、メッセージ交換を歓迎します。

おすすめ

転載: www.cnblogs.com/phploser/p/12397851.html