Über den MT5-Code-Profiler - Seite 6

 
fxsaber #:

Ich verstehe nur nicht, warum die 45 % Streicher und der Rest nicht berücksichtigt werden?

Dazu gehören die nativen Funktionen, über deren Belastung ich geschrieben habe.

RefreshHistory besteht aus HistorySelect und HistoryOrderGet, GetHistoryPositionData - aus ihnen + HistoryDealGet.

Es ist auch hilfreich, den Code mit den Augen durchzugehen und die meisten roten Zeilen zu analysieren. Sie werden jedoch nicht immer hervorgehoben, wenn der Code etwas komplexer ist als ein Blatt.

 
fxsaber #:

29,41 % (es ist unklar, warum) sind auf eine schließende Klammer nach der Rückkehr zurückzuführen. Schwierig zu interpretieren.

Entfernen von lokalen Funktionsvariablen, lokalen Objekten usw.

Dies geschieht nach jeder Rückkehr aus einer Funktion.

 
Andrey Khatimlianskii #:

Entfernen von lokalen Funktionsvariablen, lokalen Objekten usw.

Dies geschieht nach jeder Rückkehr aus der Funktion.

Es gibt nur drei ulong-Variablen.

 
fxsaber #:

Eine 20-fache Wiederholung der großen Geschichte wurde hinzugefügt.

29,41 % (es ist unklar, warum) ist auf eine schließende Klammer in der Methode bereits nach der Rückkehr zurückzuführen. Schwierig zu interpretieren.

Was steht in dem Bericht für diese Funktion?

Bitte zeigen Sie mir

 
Ilyas #:

Was steht in dem Bericht für diese Funktion?

Bitte zeigen Sie mir

MQL-Profiler-Bericht - \MQL5\Experts\Test19.mq5
Funktion Leitung CPU insgesamt Prozentsatz Eigene CPU Prozentsatz
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%


Ich bin mir nicht sicher, ob diese Information benötigt wird. Leider verstehe ich die Zahlen noch nicht sehr gut. Ich würde es gerne verstehen.


SZY In der obigen Tabelle gibt es zwei Zeilen mit der gleichen Zeile=1093. Vielleicht welche Playback-Daten in der PM angeben?

 
fxsaber #:

Es gibt nur drei ulong-Variablen.

Und alle, die von dieser Funktion aus aufgerufen werden.

Die Ausführungszeit der Funktion A enthält die Ausführungszeit aller Funktionen B, die von A aus aufgerufen werden. Es sei denn, B wird von einem anderen Ort aus aufgerufen (dann geht nur ein Teil der Zeit von B an A).

 
Andrey Khatimlianskii #:

Und alles, was von dieser Funktion aus aufgerufen wird.

Die Ausführungszeit der Funktion A enthält die Ausführungszeit aller Funktionen B, die von A aus aufgerufen werden. Es sei denn, B wird von einem anderen Ort aus aufgerufen (dann geht nur ein Teil der Zeit von B in A).

Ich meinte die schließende Klammer.

 
fxsaber #:

Ich meinte die schließende Klammer.

Das habe ich gemeint.)

Vielleicht habe ich auch etwas falsch verstanden.

 

Testerprotokoll (ohne Visualisierung), nachdem der Profiler gelaufen ist.

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


Unmittelbar danach wird die Starttaste des Testers von Hand gedrückt.

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. Warum ist die Laufzeit bei der Profilerstellung dreimal so lang?
  2. Warum ist der Speicherverbrauch bei der Profilerstellung dreimal so hoch?
 

Der Profiler zeigt Funktionsaufrufe an, die eigentlich nicht stattgefunden haben. Ich bin sogar schon auf etwas Ähnliches gestoßen:

Eine Art von ArrayCopy, die nicht in der mqh-Datei enthalten ist! Ich habe sogar eine rote Linie in der Deklaration eines statischen Arrays gezeichnet.

Leider kann ich den Profiler immer noch nicht verwenden.

Grund der Beschwerde: