MT5コードプロファイラについて - ページ 6

 
fxsaber #:

ただ、45%の文字列と残りが考慮されていないのが理解できないのですが?

その中には、私が書いた負荷となる、あのネイティブ関数も含まれています。

RefreshHistoryはHistorySelectとHistoryOrderGet、GetHistoryPositionData - それらとHistoryDealGetから構成されます。

また、自分の目でコードを確認し、最も赤い線を分析することも有効です。ただし、シートよりも少し複雑なコードの場合、必ずしもハイライトされるとは限りません。

 
fxsaber #:

29.41%(理由は不明)は、リターン後のブラケットを閉じるためです。解釈が難しい。

ローカル関数変数、ローカルオブジェクトなどの削除

これは、関数から戻った後に行われます。

 
Andrey Khatimlianskii #:

ローカル関数変数、ローカルオブジェクトなどの削除

これは、関数から戻った後に行われます。

ulong変数は3つしかありません。

 
fxsaber #:

大河ドラマで20倍のリピートを追加。

29.41%(理由は不明)は、returnの後に閉じ括弧があるため。解釈が難しい。

この機能のレポートには何が書かれているのですか?

見せてください

 
Ilyas #:

この機能のレポートには何が書かれていますか?

見せてください

MQL Profiler Report - ୧MQL5┣゙Test19.mq5
機能 ライン CPU合計 比率 セルフCPU 比率
MT4ORDERS::GetHistoryPositionData 1093 701
85.38%
260
31.67%
} 1360 157
21.96%
157
60.38%
static void GetHistoryPositionData( const ulong Ticket ) 1093 46
6.43%
46
17.69%
const string StrComment = ::HistoryDealGetString(OpenTicket, DEAL_COMMENT); 1178 23
3.22%
11
4.23%
MT4ORDERS::Order.Comment = ::HistoryDealGetString(Ticket, DEAL_COMMENT)です。 1107 20
2.80%
10
3.85%


この情報は必要ないのでは?残念ながら、私はまだ数字をよく理解していないのです。理解したいと思います。


SZY 上の表には、同じLine=1093の行が2つあります。PMで提供する再生データってなんだろう?

 
fxsaber #:

ulong変数は3つしかありません。

そして、この関数から呼び出されるもの全てです。

関数Aの実行時間には、Aから呼び出されるすべての関数Bの実行時間が含まれる。ただし、Bがどこかから呼び出された場合は別です(その場合、Bの時間の一部だけがAに流れます)。

 
Andrey Khatimlianskii #:

そして、その関数から呼び出されるすべてのもの。

関数Aの実行時間には、Aから呼び出されるすべての関数Bの実行時間が含まれる。ただし、Bがどこかから呼び出された場合は別です(その場合、Bの時間の一部だけがAに入ります)。

閉じ括弧のことです。

 
fxsaber #:

閉じる括弧のことです。

ということです)

私自身、何か誤解しているのかもしれません。

 

プロファイラ 実行後のテスターログ(ビジュアライゼーションなし)。

2021.11.08 03:21:54.358 Core 1  EURUSD,M1: 6820008 ticks, 258262 bars generated. Environment synchronized in 0:00:00.018. Test passed in 0:00:22.853 (including ticks preprocessing 0:00:01.219).
2021.11.08 03:21:54.358 Core 1  EURUSD,M1: total time from login to stop testing 0:00:22.871 (including 0:00:00.018 for history data synchronization)
2021.11.08 03:21:54.358 Core 1  disconnected
2021.11.08 03:21:54.358 Core 1  1578 Mb memory used including 24 Mb of history data, 192 Mb of tick data


その直後に、テスターのスタートボタンを手で押す。

2021.11.08 03:23:00.166 Core 1  EURUSD,M1: 6820008 ticks, 258262 bars generated. Environment synchronized in 0:00:00.029. Test passed in 0:00:07.548 (including ticks preprocessing 0:00:01.203).
2021.11.08 03:23:00.166 Core 1  EURUSD,M1: total time from login to stop testing 0:00:07.577 (including 0:00:00.029 for history data synchronization)
2021.11.08 03:23:00.166 Core 1  444 Mb memory used including 24 Mb of history data, 192 Mb of tick data


  1. プロファイリング中の実行時間が3倍長くなるのはなぜですか?
  2. プロファイリング時のメモリ消費量が3倍になるのはなぜですか?
 

プロファイラには、実際には発生していない関数呼び出しが表示されます。こんなものまで出てきました。

mqh-fileの ソースにはない、ある種のArrayCopy!静的配列の宣言に赤線を引いたくらいです。

やはりプロファイラーが使えないのは残念です。