Build 600+ und CPU-Nutzung - Seite 8

 
xaphod:

Build 628. Keine eingehenden Ticks. >500 Mal/Sekunde. Wunderbar!

Bitte prüfen Sie mit Build 645 (letzte offizielle Version), und melden Sie es dem ServiceDesk von Metaquotes, wenn es unverändert ist. Ich danke Ihnen.
 
xaphod:

Build 628. Keine eingehenden Ticks. >500 Mal/Sekunde. Wunderbar!


Bei Build 509 ist also nichts dergleichen passiert? Wie sieht es mit 625 aus?
 
mikeyap9:
Das Problem wurde behoben und war auf meinen Code zurückzuführen. Ich fügte Variablen hinzu, die nicht richtig initialisiert wurden, so dass ich Berechnungen in einer Endlosschleife hatte.


Ich habe zu früh gesprochen, das war es nicht. Es war tatsächlich eine Datei-Lese-Konkurrenz, ich habe 28 Bots, die die gleiche Setup-Datei lesen. Ich habe lediglich auf FILE_SHARE_READ statt auf FILE_READ umgestellt. Jetzt läuft alles wieder normal.
 

Ich habe immer noch eine hohe CPU-Auslastung auf einem einzelnen Terminal. Ich verwende die Builds 745 und 765. Ich habe das Terminal ohne geladene Charts, deaktivierte Nachrichten und deaktivierte Alarme getestet. Ich erhalte immer noch 40-60% CPU-Auslastung. Dual-Core 3.1Ghz vps win2008, R2 64 bit. 1.5GB ram, 400-800MB ram frei. Etwa 7 Terminals laufen. einige Terminals, die mit Diagrammen geladen sind, zeigen 1-3% CPU-Auslastung. Warum die hohe Auslastung auf zufälligen Terminals, auch wenn nichts läuft?

edit: Hier ist ein Screenshot der Prozesseigenschaften-Seite des Process Explorer:

Wenn ich versuche, den Thread mit der hohen Auslastung zu beenden, nimmt ein anderer Thread mit der gleichen CPU-Auslastung seinen Platz ein.

edit: Dann versuche ich, den Thread zu 'suspendieren' (nicht zu beenden).

Das senkt den CPU-Verbrauch, aber ich muss sehen, ob sich das auf andere Weise auf das Terminal auswirkt. In früheren Beiträgen wurde angedeutet, dass die Kurse nicht mehr zum Terminal kommen (wenn sie beendet werden). Wenn der Markt heute wieder aufgenommen wird, werde ich also sehen müssen. Ich habe versucht, den Markt wieder aufzunehmen, und der Thread springt einfach wieder auf die hohe CPU-Auslastung zurück. Keine offenen Charts, und die Marktbeobachtung hat keine Symbole (alle ausblenden). Außerdem sind die Märkte geschlossen, also keine eingehenden Ticks.

edit: Die Märkte haben sich wieder geöffnet. Wenn ich den Thread unterbreche, scheint das Terminal 5-10 Minuten lang normal zu funktionieren, dann friert es plötzlich ein (es reagiert nicht mehr) und dann muss man entweder den Thread entsperren (wieder aufnehmen), damit das Programm funktioniert, oder das Programm neu starten.

Ich habe bemerkt, dass ein anderes Terminal, das ich etwa zur gleichen Zeit nach dem Neustart gestartet hatte auch hohe Speichernutzung nicht mehr hat (ging zurück auf 0,2-1,5% CPU-Auslastung). Und dieses Terminal hat Charts mit EAs und Indikatoren geöffnet. Es scheint nicht einen rationalen Grund hier für unerklärliche hohe CPU-Auslastung zu sein, es sei denn, ich bin etwas übersehen.

 

Ich habe gerade auf einem brandneuen Testserver getestet, dieses Mal mit Windows 2012 64 Bit mit 4 Prozessoren und 2gb ram. Ich hatte Terminals mit niedriger CPU-Auslastung (zwischen 0,1 und 1%) auch mit mehreren Charts geladen und Indikatoren gestartet.

Dann habe ich ein frisch installiertes Terminal gestartet, und etwa 2 Minuten nach dem Start geht es auf 25% Auslastung (keine offenen Charts). Die anderen vorhandenen Terminals sind niedriger Auslastung.

Dann die anderen Terminals, die sich ohne Zwischenfälle verhalten haben. Wenn sie neu gestartet werden, gehen die Terminals sofort auf hohe CPU-Auslastung. Hmmmm....

Ich denke, es ist ein Fehler in mt4, der dazu führt, dass ein Thread so viel CPU verbraucht, aber warum?

-------

edit: Durch das Aufheben der Blockierung der Datei mql4.codebase.en.dat ist die CPU-Auslastung wieder auf 0,2-3% gesunken, so dass nicht mehr ein Prozessor pro Terminal ausgelastet wird und die Datei normal geschrieben wird.

Die Datei mql4.codebase.de.dat befindet sich hier: Users\[user]\AppData\Roaming\MetaQuotes\Terminal\Community

Früher wurden bestimmten mt4-Dateien Nur-Lese-Berechtigungen zugewiesen, um Bloatware zu reduzieren.