タイトルが示すように。多くの説明は本当に曖昧ですが、誰かがより確実な定義を提供できますか?
この用語はAndroidテストでよく使用されますが、そのプラットフォームに限定されているとは思いません。
一部のパフォーマンス測定ツールは、コードにインストルメンテーションを追加します。例えば。それらはバイナリ変換し、関数の最初と最後にタイマーを読み取るための命令を追加する場合があります。または、このインストルメンテーション、このタイマーの読み取りは、自動化されたツールまたはプログラマーによって、アセンブリーまたはCコードに追加される場合があります。
他のパフォーマンス測定ツールは、測定されているコードを変更しません。例えば。 UNIXの教授サンプリングは、タイマー割り込みで呼び出される特別なコードを実行します。これにより、割り込みが受信された命令のヒストグラムが生成されます。
一部のツールはハイブリッドです。 UNIX gprofは、profスタイルの割り込みサンプリングとコンパイラによって追加されたmcountインストルメンテーションを組み合わせ、-pgオプションを使用して、どの関数が相互に呼び出すかをカウントします。
すべてのパフォーマンス測定にはオーバーヘッドがありますが、インストルメンテーションには割り込みベースのサンプリングよりもオーバーヘッドが大きい傾向があります。一方、計測器はより多くのものを測定できます。
まあ、私は このリンクにアクセスしました そしてそれは言った:
コンピュータープログラミングのコンテキストでは、インストルメンテーションとは、製品のパフォーマンスレベルを監視または測定し、エラーを診断し、トレース情報を書き込む機能を指します。プログラマーシステム内の特定のコンポーネントを監視するコード命令の形式でインストルメンテーションを実装します(たとえば、命令はログ情報を出力して画面に表示する場合があります)。アプリケーションにインストルメンテーションコードが含まれている場合、管理ツールを使用して管理できます。アプリケーションのパフォーマンスを確認するには、インストルメンテーションが必要です。インストルメンテーションアプローチには、ソースインストルメンテーションとバイナリインストルメンテーションの2つのタイプがあります。
ハッピーコーディング
Oracle によると:
インストルメンテーションとは、ツールで使用されるデータを収集する目的で、メソッドにバイトコードを追加することです。変更は純粋に付加的なものであるため、これらのツールはアプリケーションの状態や動作を変更しません。このような無害なツールの例には、監視エージェント、プロファイラー、カバレッジアナライザー、イベントロガーが含まれます。
インストルメンテーションは通常、動的コード分析で使用されます。
インストルメンテーションは通常ソフトウェアによって自動的に実行されるため、ロギングとは異なりますが、ロギングにはロギングコードを挿入するための人間の知性が必要です。