MetaEditorヘルプ

コードのプロファイル

コードのプロファイル

プロファイリングとは、実行中にプログラムパラメータを収集することを意味します。 プロファイリング中に、実行時間と個々の関数とプログラムコード行の呼び出し数が測定されます。 このツールを使用すると、プログラマは最も遅いコードセクションを見つけて最適化することができます。

プロファイルは、トレーディングプラットフォームの通常のチャートで実行することができます。 最初のケースでは、プログラムがリアルタイムで更新されたチャートで起動されます。 プログラムの動作は、実際の状態で確認できます。 2番目のケースでは、プログラムは、ビジュアルモードでストラテジーテスターで起動されます。 このメソッドの利点は、トレードサーバーからの実際のデータまたは特定のトレード条件の発生を待つ必要がないことです。

多くのプログラムは、特にインジケーターは、新しいティック (OnTick、OnCalculate) の到着時にのみ計算を実行します。 したがって、パフォーマンスを評価するためには、リアルタイムで新しいティックを待つ必要があります。 履歴データを使用してプロファイリングを行う場合は、相場が閉じている週末でもプログラムのパフォーマンスをテストできます。

プロファイリングの起動

プログラムのソースコード (MQ4 または MQ5) を開きます デバッグメニューまたは標準ツールバーを選択します。実データのプロファイリングを開始する実際のデータでプロファイリングを開始する "または "ヒストリカルデータのプロファイリングを開始する履歴データのプロファイリングを開始する "

その後、プロファイリング用の特別なプログラムバージョンが自動的にコンパイルされます。 選択したプロファイルタイプに応じて、プログラムはトレーディングプラットフォームまたはストラテジーテスタ (ビジュアルモード) で通常のチャートで起動されます。

トレーディングプラットフォームでのチャートでのプロファイリングの開始

デフォルトでは、アプリケーションは EURUSD H1で起動されます。 別のシンボルまたはピリオドで起動するには、MetaEditor設定 の デバッグ タブで指定します。

起動後、アプリケーションを使用して、すべての関数を最大にしようします。 プロファイラがすべてのプログラムの関数と行の実行時間を測定するために必要です。

次に、プロファイリングをストップ: チャートからプログラムを削除します。プロファイリングのストップDebugメニューまたは標準ツールバー。でプロファイリングをストップします

より正確なプロファイリング結果を得るには、プログラムを使用する代わりに、チャートから手動で削除することをお勧めします。プロファイリングのストッププロファイリングコマンドをストップ

プロファイリング結果の表示

プロファイリングが終了すると、その結果がプロファイラ[ツールボックス] ウィンドウのタブに表示されます。 結果は、呼び出しと行ごとの2つのモードで表示できます。 コンテキストメニューを使用して、これを切り替えることができます。

呼び出しモードによる関数

プロファイリング結果

このモードでは、プロファイリングの結果は関数によって表示されます。

  • 関数—関数またはクラスメソッドの名前。
  • —関数が呼び出される行。 プログラム内の複数の場所で関数が呼び出された場合、そのアイコンは次のようになります。拡張拡張の利用をお勧めします。クリックするとそれぞれのコールでインフォが開きます。
  • Count—プログラム操作中の関数呼び出しの数。
  • Time—すべての関数の実行時間に対して、関数の実行時間をマイクロ秒、%単位で処理します。 関数の実行時間は、内部で呼び出されるすべての関数の実行の合計です。
  • Graph—関数の実行時間によるチャート。

アイコンを使用すると、関数の種類を指定できます。

  • カスタム関数-カスタム関数。
  • システム関数 —システム関数。
  • イベントハンドリング関数—イベント処理関数 (On *)。
  • クラスメソッド—クラスメソッド。

種類の関数に加えて、プロファイラが表示されます。

  • システム関数@global_initializations —すべてのグローバル変数を初期化する際のデータ。
  • システム関数@global_deinitializations-取り消しのデータはすべてのグローバル変数を更新します。

ファイル内の関数を表示するには、ダブルクリックします。

プロファイラは、すべての関数ではなく、プログラムの操作中に呼び出されたものだけを表示します。

ラインモードによる関数

プロファイリング結果

このモードでは、プログラムの操作時間のデータがラインで表されます。 ラインはプログラム関数によってグループ化されます。

  • Function—関数名。
  • Line—データが表示されるラインの番号。 各ファンクションラインの実行時間に関するデータを表示する拡張の利用をお勧めします。
  • Count—コードが指定されたラインで実行された回数。
  • Time—マイクロ秒および% で指定されたラインのコード実行時間。 各ラインのパーセンテージ値は、関数の実行時間を基準にして表示されます。 関数のパーセンテージ値は、プログラム全体の実行時間を基準にして表示されます。
  • Graph—実行時間によるチャート。

ファイル内のラインを表示するには、ダブルクリックします。

コンテクストメニュー

コンテキストメニューでは、次のコマンドを使用できます。

  • Open—ソースコードファイル内の行または関数に移動します。 ダブルクリックするか、Enter キーを押しても同じことを行うことができます。
  • Expand All—折りたたまれたすべての関数を展開します。
  • Collapse All—展開されたすべての関数を折りたたみます。
  • Functions by Lines—プロファイリング結果を線で表示する.
  • Functions by Calls—プロファイリング結果をコールで表示する.
  • Export: プロファイリング結果を Open XML (MS Office Excel)、HTML (Internet Explorer)、または CSV (テキストファイル) でエクスポートします。
  • Auto Arrange: フィールドの自動サイズ変更を有効または無効にします。 A を押すと同じ操作が実行されます。
  • Grid-グリッドを表示/非表示にして、フィールドを区切ります。 G を押しても同じアクションが実行されます。