Loading article…
コンピュータプログラミングにおいて、インストルメンテーションとは、分析を実行できる ようにソフトウェアを変更する行為です。
一般的に、インストルメンテーションはソース コードまたは バイナリ コードのいずれかを変更します。
インストルメンテーションによりプロファイリングが可能になります。[1]テスト実行中に動的な動作を測定します。これは、パフォーマンスやエイリアス分析など、十分な精度で静的に分析 できないプログラムの特性に役立ちます。
計測機器には以下が含まれます。
- 障害や操作の開始と終了などのイベントのログ記録[2]
- 操作の所要時間の測定と記録
制限事項
インストルメンテーションは実行範囲によって制限されます。プログラムが特定の実行ポイントに到達しない場合、そのポイントのインストルメンテーションではデータは収集されません。たとえば、ワードプロセッサ アプリケーションがインストルメンテーションされていても、ユーザーが印刷機能をアクティブにしない場合、インストルメンテーションでは印刷機能でのみ使用されるルーチンについては何もわかりません。
一部の種類のインストルメンテーションでは、実行時間が大幅に増加する可能性があります。これにより、デバッグ コンテキストへのインストルメンテーションの適用が制限される可能性があります。
参照
- フッキング– ソフトウェア コンポーネント間で渡される関数呼び出しやメッセージ、イベントを傍受することで、オペレーティング システム、アプリケーション、またはその他のソフトウェア コンポーネントの動作を変更または拡張するために使用される一連の手法。
- 命令セットシミュレーター– マシンコードレベルですべての命令をシミュレーションし、計測機能を提供する
- ランタイム インテリジェンス-アプリケーションの使用レベル、パターン、プラクティスの収集、統合、分析、および提示のためのテクノロジ、マネージド サービス、およびプラクティス。
- ソフトウェア パフォーマンス分析- インストルメンテーションを含むコード パフォーマンスを監視する手法。
- ハードウェアパフォーマンスカウンター
- DTrace – Solaris、macOS、FreeBSD、その他多くのプラットフォームや製品に実装されている、実稼働システム上のカーネルおよびアプリケーションの問題をリアルタイムでトラブルシューティングするための包括的な動的トレース フレームワークです。
- Java Management Extensions (JMX) – アプリケーション、システム オブジェクト、デバイス (プリンターなど)、およびサービス指向ネットワークを管理および監視するための Java テクノロジー。
- アプリケーション応答測定- CおよびJava用の標準化されたインストルメンテーションAPI。
- 動的再コンパイル- 実行中にシステムがプログラムの一部を再コンパイルする可能性がある、一部のエミュレーターおよび仮想マシンの機能。
参考文献
- ^ 「コードのコメント、テスト、インストルメント」 2011 年 1 月 3 日。 2014 年1 月 29 日閲覧。
- ^ IBM Web サイトのソースコード インストルメンテーションの概要
- インストルメンテーションとトレースの概要: Microsoft Developer Network
- Apple 開発者ツール: Instruments の紹介
- SystemTap は、実行中の Linux システムに関する情報の収集を簡素化するフリー ソフトウェア (GPL) インフラストラクチャを提供します。
- cwrap インストルメンテーションを使用して C および C++ 関数を自動的にラップします。
