この機能は、呼び出された Natural オブジェクトのどのステートメント行が実行されたかについての統計情報を取得します。 また、オブジェクトが呼び出された回数と、ステートメント行が実行された回数も示します。
ステートメントの実行統計は、以下の目的に使用することができます。
アプリケーション内の無駄な(まったく実行されていない)プログラミングコードを検出する。
アプリケーションテストの適用範囲を評価する(テストで 1 回も実行されなかったステートメント行がいくつあるか)。
アプリケーションのパフォーマンスに影響を与える可能性がある、高い頻度で実行されるコードセグメントを特定する。
Statement execution statistics maintenance 機能を呼び出すには
デバッグメインメニューで、ファンクションコード「X
」を入力します。
または:
次のダイレクトコマンドを入力します。
XS
[Statement Execution Statistics Maintenance]メニューが表示されます。
[Statement Execution Statistics Maintenance]メニューの機能については、次のセクションで説明します。すべての出力機能については「出力ステートメント」で説明します。
「テストモードのオンとオフの切り替え」を参照してください。
この機能は、Natural オブジェクトの実行されたステートメント行に関する統計を有効にします。
このセクションでは、次のトピックについて説明します。
[Statement execution statistics]を ON
または COUNT
に設定して、Natural オブジェクトを実行すると、特定のオブジェクト内で実行されたすべてのステートメント行が統計レポートにリストされます。
オプション ON
を指定すると特定のステートメント行が実行されたかどうかのみが記録され、オプション COUNT
を指定するとステートメント行が実行された回数がカウントされます。 ライブラリとオブジェクト名を指定して、ステートメントの実行統計を目的の Natural オブジェクトに制限することができます。 デフォルトでは、現在のライブラリにあるすべてのオブジェクトの統計が収集されます。
アスタリスク(*)表記を使用することもできます。
ステートメント実行統計を ON
から COUNT
に、またはその逆に切り替えても、既存の統計は影響を受けません。つまり、ON
または COUNT
のステータスは維持されます。
収集された統計データは、デバッグバッファに格納されます。 Natural オブジェクトの統計情報の保存に必要な容量は、次の式で計算します。
[Statement execution statistics]を ON
に設定した場合:ソースの行数 / 8 + 100 バイト
[Statement execution statistics]を COUNT
に設定した場合:ソースの行数 * 4 + 100 バイト
行の挿入または削除で Natural オブジェクトを変更し、STOW
の実行前にオブジェクト行の行番号を再設定しなかった場合、オブジェクトの統計に必要な容量が大きくなる可能性があります。 この問題を回避するには、エディタプロファイルで[Auto Renumber]を Y
(Yes)に設定するか(『エディタ』ドキュメントの「エディタプロファイル」を参照)、[Renumber source-codes lines]オプションを有効(これがデフォルトです)にしてシステムコマンド CATALL
を使用します(『システムコマンド』ドキュメントを参照)。
デバッガコマンド PROFILE
(「ナビゲーションと情報コマンド」を参照)を使用して、デバッグバッファのサイズを制限できます。 [Statement execution statistics]を COUNT
に設定した場合、8000 ステートメント行を超えるオブジェクトに関しては、ステートメント実行統計が収集されません。
ステートメント実行統計はデバッグ環境の一部であり、したがって、ダイレクトコマンドの SAVE ENVIRONMENT
と LOAD ENVIRONMENT
の影響を受けます(「デバッグ環境のメンテナンス」も参照)。
このセクションでは、ステートメント実行統計を有効または無効にする手順を説明します。
ライブラリまたはオブジェクト名、あるいはその両方を指定して、ステートメントの実行統計を目的の Natural オブジェクトに制限することができます。 デフォルトでは、現在のライブラリにあるすべてのオブジェクトの統計が収集されます。 アスタリスク(*)表記を使用することもできます。
ステートメント実行統計を有効にするには
[Statement Execution Statistics Maintenance]メニューで、ファンクションコード「S
」、ライブラリの名前またはオブジェクトの名前、あるいはその両方を入力します。 [State]フィールドで値を ON
に変更します。
または:
次のいずれかのダイレクトコマンドを入力します。
SET XSTATISTICS ON library (object)
または
SET XSTATISTICS COUNT library (object)
「コマンドの概要と構文」で SET
の構文も参照してください。
ライブラリまたはオブジェクト、あるいはその両方を指定しない場合は、現在のライブラリにあるすべてのオブジェクトの統計データが有効になります。
ステートメント実行統計を無効にするには
[Statement Execution Statistics Maintenance]メニューで、ファンクションコード「S
」、ライブラリの名前またはオブジェクトの名前、あるいはその両方を入力します。 [State]フィールドで値を OFF
に変更します。
または:
次のダイレクトコマンドを入力します。
SET XSTATISTICS OFF library (object)
「コマンドの概要と構文」で SET
の構文も参照してください。
ライブラリまたはオブジェクト、あるいはその両方を指定しない場合は、現在のライブラリにあるすべてのオブジェクトの統計データが無効になります。
ステートメント実行統計を削除するには
[Statement Execution Statistics Maintenance]メニューで、ファンクションコード「C
」、ライブラリの名前またはオブジェクトの名前、あるいはその両方を入力します。
または:
次のダイレクトコマンドを入力します。
DELETE XSTATISTICS library (object)
「コマンドの概要と構文」で DELETE
の構文も参照してください。
ライブラリまたはオブジェクト、あるいはその両方を指定しない場合は、現在のライブラリにあるすべてのオブジェクトの統計データが削除されます。
この機能では、指定したステートメント実行統計のリストの画面を表示します。
[List Statement Execution Statistics]画面を表示するには
[Statement Execution Statistics Maintenance]メニューでファンクションコード「D
」を入力します。
または:
次のダイレクトコマンドを入力します。
DISPLAY XSTATISTICS
[List Statement Execution Statistics]画面が表示されます。
16:02:01 ***** NATURAL TEST UTILITIES ***** 2002-02-15 Test Mode ON - List Statement Execution Statistics - Object All Co Object Library Type DBID FNR Obj.Called Exec Exec % Total No. *_______ *_______ n Times able uted Executions __ TEST SAG Program 10 32 4 20 17 85 95 __ MAP01 SAG Map 10 32 6 2 2 100 12 __ SPGM02 SAG Subprogram 10 32 2 6 2 33 4 __ SAGTEST1 SAG Program 10 32 2 20 10 50 17 __ DEBPGM SAG Program 10 32 1 6 6 100 34 |
各オブジェクトについて、以下の情報が表示されます。
呼び出しの頻度
実行ステートメントの数
実行されたステートメントの数
実行ステートメントの合計に対する実行されたステートメントの比率
実行されたステートメントの総数
データが欠けている場合、または整合性を失った可能性がある場合は、リストエントリが強調表示されます。
統計リストでは、さらに処理するために行コマンドで項目をマークすることができます。
行コマンド | 説明 |
---|---|
DE |
上記で説明したように、ステートメント実行統計を削除します。 |
DS |
すべてのステートメント行を表示します。 |
DX |
実行されたステートメント行のみを表示します。 |
DN |
実行されなかったステートメント行のみを表示します。 |
I |
カタログ化オブジェクトとエラーの情報を表示します。 |
PS |
すべてのステートメント行を出力します。 |
PX |
実行されたステートメント行のみを出力します。 |
PN |
実行されなかったステートメント行のみを出力します。 |
出力機能の詳細については、「出力ステートメント」を参照してください。
次のセクションでは、表示コマンドで表示できる画面について説明します。
[Display Statement Lines]画面には、オブジェクトソースが表示され、ステートメント行が実行されたかどうかが示されます。
[Display Statement Lines]画面を表示するには
[List Statement Execution Statistics]画面で、行コマンド DS
でエントリをマークします。
または:
次のダイレクトコマンドを入力します。
DISPLAY STATEMENT library (object)
「コマンドの概要と構文」で DISPLAY
の構文も参照してください。
[Display Statement Lines]画面が表示されます。 [Statement execution statistics]を COUNT
に設定した場合、下のサンプル画面で示すように、ステートメント行の実行頻度が表示されます。
16:04:01 ***** NATURAL TEST UTILITIES ***** 2002-02-15 Test Mode ON - Display Statement Lines - Object SAGTEST Line Source Count 0200 RD1. READ EMPLOYEES-VIEW BY NAME 2 0210 STARTING FROM #NAME-START THRU #NAME-END 0220 * 0230 IF LEAVE-DUE >= 20 1 0240 PERFORM MARK-SPECIAL-EMPLOYEES not executed 0250 ELSE not executed 0260 RESET #MARK 1 0270 END-IF 0280 * 0290 RESET #MAKE #MODEL 1 0300 CALLNAT 'SPGM02' PERSONNEL-ID #MAKE #MODEL 1 0310 * 0320 WRITE TITLE / '*** PERSONS WITH 20 OR MORE DAYS LEAVE DU 1 0330 / '*** ARE MARKED WITH AN ASTERISK ***' // 0340 DISPLAY '//N A M E' NAME 2 |
一意のオブジェクトが指定されていない場合は、[List Statement Execution Statistics]画面が表示されます。
[Display Executed Statement Lines]画面は[Display Statement Lines]画面に対応していますが、実行されたステートメント行のみが表示されます。
[Display Executed Statement Lines]画面を表示するには
[List Statement Execution Statistics]画面で、行コマンド DX
でエントリをマークします。
または:
次のダイレクトコマンドを入力します。
DISPLAY EXEC library (object)
「コマンドの概要と構文」で DISPLAY
の構文も参照してください。
一意のオブジェクトが指定されていない場合は、[List Statement Execution Statistics]画面が表示されます。
[Non-Executed Statement Lines]画面は[Display Statement Lines]画面に対応していますが、実行されなかったステートメント行のみが表示されます。
[Display Non-Executed Statement Lines]画面を表示するには
[List Statement Execution Statistics]画面で、行コマンド DN
でエントリをマークします。
または:
次のダイレクトコマンドを入力します。
DISPLAY NOEXEC library (object)
「コマンドの概要と構文」で DISPLAY
の構文も参照してください。
一意のオブジェクトが指定されていない場合は、[List Statement Execution Statistics]画面が表示されます。
出力機能では、ステートメント実行統計の生成リストをプリンタに直接送信したり、リストを PC にダウンロードしたりすることができます。 デバッガの[User Profile]画面で出力デバイスとしてプリンタを定義します。 この画面を表示するには、デバッガコマンド PROFILE
を使用します(「ナビゲーションと情報コマンド」を参照)。
ライブラリ名を指定していない場合は、現在ログオンしているライブラリがデフォルトで使用されます。
下記の「出力オプション」に示すように、いずれかの出力機能を実行するには、[Statement Execution Statistics Maintenance]メニューでファンクションコードを入力するか、[Display Statement Lines]画面で行コマンドを入力するか、あるいはダイレクトコマンドを入力します。
出力機能 | ファンクションコード | 行コマンド | ダイレクトコマンド |
---|---|---|---|
ステートメント実行統計の出力 | PRINT XSTATISTICS library (object) |
||
すべてのステートメントの出力 | PS |
PRINT STATEMENT library
(object) |
|
実行されたステートメントの出力 | PX |
PRINT EXEC library
(object) |
|
実行されなかったステートメントの出力 | PN |
PRINT NOEXEC library
(object) |
「コマンドの概要と構文」で PRINT
の構文も参照してください。
「コール統計のメンテナンス」の「オブジェクトの出力」にある「PC ダウンロードの例」
「バッチ処理」の「バッチでの統計の生成と出力の例」