建立600+和CPU的使用 - 页 6 12345678 新评论 Alain Verleyen 2014.03.31 20:43 #51 RaptorUK: 我想知道你是否能在你的进程浏览器中为我检查一些东西? 如果你找到 terminal.exe 进程,双击它,然后转到线程选项卡。你是否有一个或两个名为terminal.exe+ 的 线程 ...... 我有两个 . . 如果我杀死使用CPU的那一个,MT4仍然可以运行,但CPU的使用率要低得多。 我很高兴,但我需要安装一些用于Windows的微软调试工具......我将在得到结果后尽快发布。 qjol 2014.03.31 20:47 #52 这是最基本的,根据你的需要进行调整。 //+------------------------------------------------------------------+ //| !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]); } } } } } } Alain Verleyen 2014.03.31 20:48 #53 SDC: 在终端进程方面,我不知道如何做,所以我现在正在尝试不同的东西,我设法几乎得到它,但它说_total,我认为它应该说终端。我不想要所有的CPU统计数据,我只想让它和MT4一样,当我把MT4进程计数器添加到图形显示图表中时...。 当你添加计数器时,你必须选择进程。你必须在添加计数器时选择进程,然后选择%CPU时间,再选择进程。(我是用法语工作的,所以不确定英语的确切术语)。 Alain Verleyen 2014.03.31 20:52 #54 angevoyageur: 我很高兴,但我需要安装一些用于Windows的微软调试工具......我一拿到结果就会公布。 。 好的。有件事很奇怪。我有3个线程,但似乎在我玩这个的时候,%cpu增加了。我将做一些检查 并报告有关情况。 Ian Venner 2014.03.31 20:54 #55 我有两个终端.exe+线程,我不认为你应该杀死其中一个,如果你检查 它们的堆栈并不断刷新,它们似乎做了相当多的事情。 Ian Venner 2014.03.31 21:36 #56 angevoyageur: 当你添加计数器时,你必须选择进程。Processus然后是%CPU时间,然后选择进程。(我是用法语工作的,所以不确定英语中的确切术语)。 好的,我再试一下 [删除] 2014.03.31 21:59 #57 RaptorUK: 我想知道你是否可以在你的进程资源管理器中为我检查一些东西? 如果你找到terminal.exe进程,双击它,然后转到线程标签.你是否有一个或两个名为terminal.exe+ 的 线程 ...... 我有两个 . . 如果我杀掉使用CPU的那台,MT4似乎仍然可以运行,但CPU的使用率要低很多。 它试图杀死它,但我没有得到更多传入的虱子。 根据我的主板电源监控工具,b625在我的CPU上使用约5W,而b509使用约1W。这似乎支持了Process Explorer中的CPU数据。 Simon Gniadkowski 2014.04.01 06:25 #58 euclid: 它试图杀死它,但我没有得到更多传入的信息。 根据我的主板电源监控工具,b625在我的CPU上使用了大约5W,而b509使用了大约1W。这似乎支持了Process Explorer中的CPU数据。 是的,我也发现了这一点。 Alain Verleyen 2014.04.01 12:29 #59 angevoyageur: 好的。有一点很奇怪。我有3个线程,但似乎在我玩这个的时候,%cpu增加了。我将做一些检查,并报告有关情况。 不,我看不到任何有用的东西。我目前有2个终端线程(没有图表,没有符号),%cpu从0.8%到2.1%不等,尽管该平台应该什么都不做。当我打开一个图表并显示所有的符号时,这个%是3-4%左右。 Ian Venner 2014.04.01 12:49 #60 angevoyageur: 不,我看不到任何有用的东西。我目前有2个终端线程(没有图表,没有符号),%cpu从0.8%到2.1%不等,尽管该平台应该什么都不做。当我打开一个图表并显示所有符号时,这个百分比大约是3-4%。 这是因为平台仍在接受输入的点数吗? 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我想知道你是否能在你的进程浏览器中为我检查一些东西?
如果你找到 terminal.exe 进程,双击它,然后转到线程选项卡。你是否有一个或两个名为terminal.exe+ 的 线程 ...... 我有两个 . .
如果我杀死使用CPU的那一个,MT4仍然可以运行,但CPU的使用率要低得多。
这是最基本的,根据你的需要进行调整。
在终端进程方面,我不知道如何做,所以我现在正在尝试不同的东西,我设法几乎得到它,但它说_total,我认为它应该说终端。我不想要所有的CPU统计数据,我只想让它和MT4一样,当我把MT4进程计数器添加到图形显示图表中时...。
我很高兴,但我需要安装一些用于Windows的微软调试工具......我一拿到结果就会公布。 。
当你添加计数器时,你必须选择进程。Processus然后是%CPU时间,然后选择进程。(我是用法语工作的,所以不确定英语中的确切术语)。
我想知道你是否可以在你的进程资源管理器中为我检查一些东西?
如果你找到terminal.exe进程,双击它,然后转到线程标签.你是否有一个或两个名为terminal.exe+ 的 线程 ...... 我有两个 . .
如果我杀掉使用CPU的那台,MT4似乎仍然可以运行,但CPU的使用率要低很多。
它试图杀死它,但我没有得到更多传入的虱子。
根据我的主板电源监控工具,b625在我的CPU上使用约5W,而b509使用约1W。这似乎支持了Process Explorer中的CPU数据。
它试图杀死它,但我没有得到更多传入的信息。
根据我的主板电源监控工具,b625在我的CPU上使用了大约5W,而b509使用了大约1W。这似乎支持了Process Explorer中的CPU数据。
好的。有一点很奇怪。我有3个线程,但似乎在我玩这个的时候,%cpu增加了。我将做一些检查,并报告有关情况。
不,我看不到任何有用的东西。我目前有2个终端线程(没有图表,没有符号),%cpu从0.8%到2.1%不等,尽管该平台应该什么都不做。当我打开一个图表并显示所有符号时,这个百分比大约是3-4%。