C++中怎么监控进程?本人C++小白,迫于特殊原因,求各位帮个忙!

C++中怎么监控进程?本人C++小白,迫于特殊原因,求各位帮个忙!,第1张

实现代码如下,代码在vs2013和vs2017都通过测试:

#include "stdafx.h"

#include <windows.h>

#include <Tlhelp32.h>

int main(int argc, char* argv[])

{

while (true) {

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)

if (INVALID_HANDLE_VALUE == hSnapshot)

{

return 0

}

PROCESSENTRY32 pi

pi.dwSize = sizeof(PROCESSENTRY32)

BOOL bRet = Process32First(hSnapshot, &pi)

bool w1 = false

bool w2 = false

while (bRet)

{

if (!wcscmp(L"watch.exe", pi.szExeFile)) {

w1 = true

}

else if (!wcscmp(L"asker.exe", pi.szExeFile)) {

w2 = true

}

bRet = Process32Next(hSnapshot, &pi)

}

if (!w1) {

WinExec("C://windows//watch.exe", SW_SHOWMAXIMIZED)

}

if (!w2) {

WinExec("C://windows//asker.exe", SW_SHOWMAXIMIZED)

}

Sleep(3000)

}

return 0

}

应用程序很高兴对所有这些活动一无所知。它只知道自己的虚拟地址空间。但是,如果当前在主存中的页面集(称为 驻留集)少于实际要使用的页面集(称为 工作集),应用程序的性能很快就会显著降低。(不幸的是,本文中您将看到,我们要讨论的工具常常交换使用这两个术语,尽管它们指的是完全不同的事物。)Task Manager 和 PerfMon我们首先考察两种最常见的工具:Task Manager 和 PerfMon。这两个工具都随 Windows 一起提供,因此由此起步比较容易。Task ManagerTask Manager 是一种非常见的 Windows 进程监控程序。您可以通过熟悉的 Ctrl-Alt-Delete 组合键来启动它,或者右击任务栏。Processes 选项卡显示了最详细的信息,如图 2 所示。图 2. Task Manager 进程选项卡图 2 中显示的列已经通过选择 View -->Select Columns 作了调整。有些列标题非常含糊,但可以在 Task Manager 帮助中找到各列的定义。和进程内存使用情况关系最密切的计数器包括:Mem Usage(内存使用):在线帮助将其称为进程的工作集(尽管很多人称之为驻留集)——当前在主存中的页面集。但是这个数值包含能够和其他进程共享的页面,因此要注意避免重复计算。比方说,如果要计算共享同一个 DLL 的两个进程的总内存占用情况,不能简单地把“内存使用”值相加。Peak Mem Usage(内存使用高峰值):进程启动以来 Mem Usage(内存使用)字段的最大值。Page Faults(页面错误):进程启动以来要访问的页面不在主存中的总次数。VM Size(虚拟内存大小):联机帮助将其称为“分配给进程私有虚拟内存总数。”更确切地说,这是进程所 提交的内存。如果进程保留内存而没有提交,那么该值就与总地址空间的大小有很大的差别。虽然 Windows 文档将 Mem Usage(内存使用)称为工作集,但在该上下文中,它实际上指的是很多人所说的驻留集(resident set),明白这一点很重要。您可以在 Memory Management Reference 术语表(请参阅 参考资料)中找到这些术语的定义。 工作集 更通常的含义指的是一个逻辑概念,即在某一点上为了避免分页 *** 作,进程需要驻留在内存中的那些页面。PerfMon随 Windows 一起提供的另一种 Microsoft 工具是 PerfMon,它监控各种各样的计数器,从打印队列到电话。PerfMon 通常在系统路径中,因此可以在命令行中输入 perfmon 来启动它。这个工具的优点是以图形化的方式显示计数器,很容易看到计数器随时间的变化情况。请在 PerfMon 窗口上方的工具栏中单击 + 按钮,这样会打开一个对话框让您选择要监控的计数器,如图 3a 所示。计数器按照 性能对象分成不同的类别。与内存使用关系最密切的两个类是 Memory 和 Process。选中计数器然后单击 Explain 按钮,就可以看到计数器的定义。说明出现在主对话框下方d出的单独的窗口中。

你好,

使用windows性能监视器监控进程信息的步骤:

打开运行界面,输入“perfmon”命令之后回车即可

然后打开windows的性能监视器,选择“性能监视器”;能看到默认的监视内容,选择添加按钮

找到“Process”,这个就是今天的主角

拉倒最下面,选择“Working Set”也就是看物理内存占用情况

然后选择需要查看的进程,这里选择的是QQ

添加完成之后需要对这些选择项进行修改属性,让其看起来更直观

可以修改颜色;比例;宽度和样式,修改完成之后返回

来看看QQ进程的指标数据

当然这样看起来还是不够好看,那么就需要切换到报告页面了。

然后再看看这个数字类型的,这个看起来是不是更直观了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7771370.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存