Pineプロファイラについて詳しく知りたいのですが

Pineプロファイラとは何ですか、どのように使うのですか?

Pineプロファイラは強力なユーティリティで、スクリプト内の重要なコード行とブロックすべてについて実行時の状態を解析し、 Pineエディタ各行の隣にそのパフォーマンスに関して役立つ情報を表示するものです。プロファイラの解析結果を調べると、スクリプト全体の実行時間やそれに対して重要なコード領域の実行時間が占める割合がわかり、特に注意を払うべき部分や最適化が必要と思われる箇所を明確に見つけることができます。

Pineプロファイラでスクリプトをプロファイルする手順は下記のとおりです:

  1. Pineエディタでスクリプトのソースコードを開きます。スクリプトが読み込み専用の場合は、コピーを作成してください。
  2. チャートにスクリプトを追加します。
  3. エディタ画面右上の 「チャートに追加/更新をチャートに反映 」オプションの隣にある下矢印からドロップダウンメニューを表示して、使用可能な状態になった「プロファイラモードを有効にする」ボタンをクリックします:

プロファイラを有効にすると、スクリプト内の重要なコード領域すべてから実行時の情報が収集され、全体の実行時間に対して占める割合の概算値がPineエディタのコード行の左側に表示されます。

Pineエディタで行の左側の余白にマウスカーソルを置くと解析されたコード領域が強調表示され、コードの行番号、スクリプト全体の実行時間とそのコードに費やされた時間、コードの総実行回数といったパフォーマンスに関する詳細情報が小さなウィンドウに表示されます:

ウィンドウに表示されるフィールドは解析されたコードによって異なります。プロファイルされたコードが1行の場合、「行番号 (Line number)」、「時間 (Time)」、「実行回数 (Executions)」の3つのフィールドが表示されます。ループや条件構造の開始行では「行番号」のかわりに「コードブロック範囲 (Code block range)」フィールドが表示され、さらに「行時間 (Line time)」フィールドが追加で表示されます。

注意: Pineプロファイラは、パフォーマンスの結果を追跡しながら表示を行うため、それに必要な追加の計算を重要な行およびコードブロックごとに行います。その結果、スクリプト内のすべての行に表示されるパーセント値の合計は100%にならず、プロファイル領域で算出された時間をすべて合計してもスクリプト全体の実行時間より短くなります。

スクリプトに重要なコードが4行以上含まれる場合、プロファイラは実行時間のパフォーマンスに与える影響が大きい上位3つのコード領域の左側に「炎」のアイコンを表示します。影響度の高いコードがPineエディタ画面の範囲外にある場合は、画面左の余白部分の上部または下部に「炎」のアイコンと数字が表示されます。このアイコンをクリックするとエディター画面が縦にスクロールして、影響度の高い行の中で一番近くにあるものが表示されます:

プロファイラの機能や結果の見方、Pine Script™ コードの最適化のヒントについてさらに詳細を知りたい場合は、Pine Script™ ユーザーマニュアルの Profiling and optimization のページをご覧ください。