Build 600+ und CPU-Nutzung - Seite 6

 
RaptorUK:

Ich frage mich, ob Sie etwas für mich in Ihrem Process Explorer überprüfen könnten?

Wenn Sie den Prozess terminal.exe finden, doppelklicken Sie darauf und gehen Sie auf die Registerkarte Threads. . haben Sie einen oder zwei Threads mit dem Namen terminal.exe+ ... . Ich habe zwei...

wenn ich den Prozess, der die CPU nutzt, beende, scheint MT4 immer noch gut zu laufen, aber mit einer viel geringeren CPU-Auslastung.

Gerne, aber ich muss noch einige Microsoft Debugging Tools für Windows installieren... Ich werde das Ergebnis posten, sobald ich es habe.
 

hier sind die Grundlagen, die Sie für Ihre Bedürfnisse ausarbeiten können

//+------------------------------------------------------------------+
//|                                                       !pCPUu.mq4 |
//+------------------------------------------------------------------+
#property version   "1.00"

#import "Psapi.dll"
   bool EnumProcesses(int& pProcessIds[], int cb, int & pBytesReturned);
   int  GetModuleBaseNameW(int hProcess, int & hModule[], char & lpBaseName[], int nSize);
   int  GetModuleFileNameExW(int hProcess, int & hModule[],ushort & lpFilename[], int nSize);
   bool EnumProcessModules(int hProcess,int & lphModule[],int cb, int & lpcbNeeded[]);

#import

#import "kernel32.dll"
   int  OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
   bool GetProcessTimes(int hProcess, int & lpCreationTime[], int & lpExitTime[], int & lpKernelTime[], int & lpUserTime[]);
   bool GetSystemTimes(int & lpIdleTime[], int & lpKernelTime[], int & lpUserTime[]);
   int  GetLastError(void);
#import
#define  PROCESS_QUERY_INFORMATION 0x0400
#define  PROCESS_VM_READ 0x0010

double   CPU_Usage;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(1);
      
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
      
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   int aProcesses[1024], cbNeeded, cProcesses, hMod[], szPN[1024], sz;
   int lpCreationTimeF[1], lpExitTimeF[1], lpKernelTimeF[1], lpUserTimeF[1];
   int lpCreationTimeS[1], lpExitTimeS[1], lpKernelTimeS[1], lpUserTimeS[1];
   string Prss;
            
   
   EnumProcesses(aProcesses, ArraySize(aProcesses), cbNeeded); // Get the list of process identifiers.
   cProcesses = cbNeeded / 4; // Calculate how many process identifiers were returned.
   for (int i = 0; i < cProcesses; i++)
      {
      if(aProcesses[i] != 0 )
         {
         // Get a handle to the process.
         int hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
         if (hProcess != 0)
            {
            // Get the process name.
            if (EnumProcessModules(hProcess, hMod, ArraySize(hMod), szPN))
               {
               ushort szProcessName[1850];
               GetModuleFileNameExW(hProcess, hMod, szProcessName, ArraySize(szProcessName)/32 );
               Prss = ShortArrayToString(szProcessName);
               if (StringFind(Prss, "terminal.exe") != -1)
                  {
                  // Calculate the process CPU usage
                  GetProcessTimes(hProcess, lpCreationTimeF, lpExitTimeF, lpKernelTimeF, lpUserTimeF);
                  Sleep(1000);
                  GetProcessTimes(hProcess, lpCreationTimeS, lpExitTimeS, lpKernelTimeS, lpUserTimeS);
                  CPU_Usage=((((lpKernelTimeS[0]-lpKernelTimeF[0]) + (lpUserTimeS[0] - lpUserTimeF[0])) * 100) / 10000000);
                  if (CPU_Usage > 10)
                  Alert(Prss, " is: ", CPU_Usage, " Prss no=: ", aProcesses[i]);
                  }
               }
            }
         }
      }   
  }
 
SDC:

auf dem Terminal-Prozess Ich weiß nicht, wie es zu tun, so im hacking auf es gerade jetzt versuchen verschiedene Dinge, die ich geschafft, es fast zu bekommen, aber es sagt _total, wo ich denke, es sollte Terminal sagen. Ich will nicht, dass die CPU-Statistiken auf alles, was ich nur wollen, dass es MT4 das gleiche zu tun, wie wenn ich die MT4-Prozess-Zähler, um die grafische Anzeige Chart hinzufügen ...

Sie müssen den Prozess auswählen, wenn Sie den Zähler hinzufügen. Processus dann %CPU Zeit und wählen Sie den Prozess. (Ich bin in Französisch arbeiten, so nicht sicher, der genaue Begriff in Englisch).
 
angevoyageur:
Gerne, aber ich muss noch einige Microsoft Debugging Tools für Windows installieren...Ich werde das Ergebnis posten, sobald ich es habe.

Also gut. Da ist etwas merkwürdig. Ich habe 3 Threads, aber es scheint, dass der %cpu gestiegen ist , seit ich damit spiele. Ich werde einige Überprüfungen durchführen und darüber berichten.
 
Ich habe zwei dieser terminal.exe+ Threads in meinem, ich denke nicht, dass Sie einen von ihnen töten sollten, sie scheinen ziemlich viel zu tun, wenn Sie die Stapel auf ihnen überprüfen und aktualisieren
 
angevoyageur:
Sie müssen den Prozess auswählen, wenn Sie den Zähler hinzufügen. Processus dann %CPU Zeit und wählen Sie den Prozess. (Ich arbeite auf französisch und bin mir daher nicht sicher, wie der genaue Begriff auf Englisch lautet).
Okay, ich werde es noch einmal versuchen
 
RaptorUK:

Ich frage mich, ob Sie etwas für mich in Ihrem Process Explorer überprüfen könnten?

Wenn Sie den Prozess terminal.exe finden, doppelklicken Sie darauf und gehen Sie dann auf die Registerkarte Threads . . haben Sie einen oder zwei Threads mit dem Namen terminal.exe+ ... . Ich habe zwei...

wenn ich die CPU ausschalte, scheint MT4 immer noch gut zu laufen, aber mit einer viel geringeren CPU-Auslastung.


Er hat versucht, sie zu töten, aber ich habe keine weiteren Zecken mehr bekommen.

Laut meinem Motherboard-Energieüberwachungsprogramm verbraucht b625 etwa 5W auf meiner CPU, während b509 etwa 1W verbraucht. Dies scheint die CPU-Zahlen aus dem Process Explorer zu bestätigen.

 
euclid:


Ich habe versucht, ihn abzuschalten, aber ich bekam keine weiteren eingehenden Ticks.

Laut meinem Motherboard-Energieüberwachungsprogramm verbraucht das b625 etwa 5 W auf meiner CPU, während das b509 etwa 1 W verbraucht. Dies scheint die CPU-Zahlen aus dem Process Explorer zu bestätigen.

Ja, das habe ich auch entdeckt...
 
angevoyageur:
Also gut. Es ist etwas seltsam. Ich habe 3 Threads, aber es scheint, dass der %cpu gestiegen ist, seit ich damit spiele. Ich werde einige Überprüfungen durchführen und darüber berichten.
Nein, ich kann nichts Nützliches sehen. Ich habe derzeit 2 Terminal-Threads (ohne Charts, ohne Symbole) und die %cpu schwankt zwischen 0,8 % und 2,1 %, obwohl die Plattform eigentlich nichts tun soll. Wenn ich einen Chart öffne und alle Symbole anzeige, liegt dieser Prozentsatz bei 3-4 %.
 
angevoyageur:
Nein, ich kann nichts Nützliches sehen. Ich habe derzeit 2 Terminal-Threads (ohne Charts, ohne Symbole) und %cpu variiert von 0,8% bis 2,1%, obwohl die Plattform nichts tun soll. Wenn ich ein Diagramm öffne und alle Symbole anzeige, liegt dieser Prozentsatz bei 3-4 %.
Liegt es daran, dass die Plattform noch immer eingehende Ticks akzeptiert?