Keil Logo

PerformanceAnalyze

構文 説明
PerformanceAnalyze 現在定義されているすべてのパフォーマンスアナライザ範囲と、これらの範囲のタイミング結果を表示します。
PerformanceAnalyze start , end パフォーマンスアナライザに追加する新しい範囲を定義します。
PerformanceAnalyze KILL * 現在定義されているすべてのパフォーマンスアナライザ範囲を削除します。
PerformanceAnalyze KILL item , item 現在定義されているパフォーマンスアナライザ範囲を指定して削除します。
PerformanceAnalyze RESET パフォーマンスアナライザをリセットします。

µVision4 のパフォーマンスアナライザを使用すると、ターゲットプログラムを調整してパフォーマンスを最大限に向上させることができます。解析するプログラムの部分を指定すると、プログラムの実行中にパフォーマンスアナライザにより実行に関する統計情報が収集されます。解析対象のプログラムの各部分について、最短、最長、および平均の実行時間が記録されます。

最大 256 のコード範囲を解析することができます。パフォーマンスアナライザは、コード範囲の実行回数に加えて、各範囲の実行時間を記録します。

範囲とはアドレス範囲です。これは通常、関数の最初の命令から始まり、その関数の最後の命令で終わります。ただし、ターゲットプログラムのどの部分からも、少数の命令のみを含む範囲を指定することができます。

プログラムの実行中、パフォーマンスアナライザの結果が[パフォーマンスアナライザ](Performance Analyzer)ウィンドウに表示されます。

パフォーマンスアナライザでの作業中は、以下のコマンドを使用できます。

PA

引数を指定せずに PA コマンドを実行すると、定義されている各パフォーマンスアナライザのアドレス範囲、そのインデックス番号(特定範囲の削除に使用)、実行数、および最短、最長、平均の実行時間(クロックサイクル単位)が表示されます。

PA start , end

PA コマンドにターゲットプログラムの関数名またはアドレス範囲を指定して実行すると、解析する新しいアドレス範囲が作成されます。start が関数名の場合、µVision4 は自動的に関数の開始アドレスと終了アドレスを取得します。start がアドレスの場合、end に解析する範囲の終了アドレスを指定する必要があります。ターゲットアプリケーションは、パフォーマンス解析を最適化できるよう完全なデバッグ情報を使用してコンパイルする必要があります。

  • ARM シミュレータのパフォーマンスアナライザは、アプリケーション全体で常にアクティブであるため、設定の必要はありません。したがって、PA コマンドは不要です。
  • パフォーマンスアナライザのアドレス範囲には、固有の開始ポイントと終了ポイントを指定する必要があり、中間でのリターン(RET)命令を含めることができません。新しいアドレス範囲を既存の範囲とオーバーラップさせることはできません。
PA KILL *

PA KILL * コマンドは、パフォーマンスアナライザからすべてのアドレス範囲を削除します。

PA KILL item

PA KILL コマンドにインデックス番号を指定して実行すると、パフォーマンスアナライザから該当するアドレス範囲が削除されます。µVision4 は、パフォーマンスアナライザに追加する各アドレス範囲と関数にインデックスを割り当てます。これらの番号は PA コマンドで表示することができます。

PA RESET

PA RESET コマンドは、定義されているすべてのアドレス範囲について記録されているすべての情報をクリアします。ターゲットプログラムをしばらく実行してから、このコマンドを使用して記録を開始できます。

パフォーマンスアナライザのプログラム範囲は、[パフォーマンスアナライザの設定](Setup Performance Analyzer)ダイアログでも定義できます。このダイアログはメインメニューの[デバッグ](Debug)→[パフォーマンスアナライザ…](Performance Analyzer…)から開きます。

>PA main                         /* Define a range for main()   */
>PA timer0                       /* Define a range for timer0() */
>PA clear_records                /* Define more ranges          */
>PA measure_display
>PA save_current_measurements
>PA read_index
>PA set_time
>PA set_interval
>
>PA                              /* display all PA ranges       */
  0: main: (FF01EF-FF03B6)       /* FF01EF = C:0x01EF           */
  1: timer0: (FF006A-FF0135)
  2: clear_records: (FF01C0-FF01EE)
  3: measure_display: (FF07E7-FF084A)
  4: save_current_measurements: (FF000E-FF0069)
  5: read_index: (FF0136-FF01BF)
  6: set_time: (FF084B-FF08CA)
  7: set_interval: (FF08CB-FF09A5)

/* After execution of the user program ... */

>PA                              /* Display ranges and stats   */
  0: main: (FF01EF-FF03B6)
     count=1, min=-1, max=0, total=167589
  1: timer0: (FF006A-FF0135)
     count=2828, min=33, max=254, total=226651
  2: clear_records: (FF01C0-FF01EE)
     count=1, min=27086, max=27086, total=27086
  3: measure_display: (FF07E7-FF084A)
     count=10, min=19495, max=19503, total=185027
  4: save_current_measurements: (FF000E-FF0069)
     count=491, min=205, max=209, total=100665
  5: read_index: (FF0136-FF01BF)
  6: set_time: (FF084B-FF08CA)
  7: set_interval: (FF08CB-FF09A5)
>
>PA KILL 7                       /* Remove set_interval        */
>PA KILL 6                       /* Remove set_time            */
>PA KILL 5                       /* Remove read_index          */
>PA
  0: main: (FF01EF-FF03B6)
     count=1, min=-1, max=0, total=167589
  1: timer0: (FF006A-FF0135)
     count=2828, min=33, max=254, total=226651
  2: clear_records: (FF01C0-FF01EE)
     count=1, min=27086, max=27086, total=27086
  3: measure_display: (FF07E7-FF084A)
     count=10, min=19495, max=19503, total=185027
  4: save_current_measurements: (FF000E-FF0069)
     count=491, min=205, max=209, total=100665
>
>PA RESET                        /* Clear all recorded information */
>PA
  0: main: (FF01EF-FF03B6)
  1: timer0: (FF006A-FF0135)
  2: clear_records: (FF01C0-FF01EE)
  3: measure_display: (FF07E7-FF084A)
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.