社区
进程/线程/DLL
帖子详情
问:如何编程监控CPU的占用情况?
wycaicai
2005-03-26 08:42:34
如何编程监控CPU的占用情况?
百分之多少?
类似任务管理器中的那个!
...全文
186
9
打赏
收藏
问:如何编程监控CPU的占用情况?
如何编程监控CPU的占用情况? 百分之多少? 类似任务管理器中的那个!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pepsi1980
2005-03-28
打赏
举报
回复
去vcbak上面去找!
liuyan4794
2005-03-27
打赏
举报
回复
up
sjcode
2005-03-26
打赏
举报
回复
学习
lemon_wei
2005-03-26
打赏
举报
回复
我这有段2000的,你可以参考,出自VC知识库,非本人所写。
--------------------------------------------------
#define SystemBasicInformation 0
#define SystemPerformanceInformation 2
#define SystemTimeInformation 3
#define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart))
typedef struct
{
DWORD dwUnknown1;
ULONG uKeMaximumIncrement;
ULONG uPageSize;
ULONG uMmNumberOfPhysicalPages;
ULONG uMmLowestPhysicalPage;
ULONG uMmHighestPhysicalPage;
ULONG uAllocationGranularity;
PVOID pLowestUserAddress;
PVOID pMmHighestUserAddress;
ULONG uKeActiveProcessors;
BYTE bKeNumberProcessors;
BYTE bUnknown2;
WORD wUnknown3;
} SYSTEM_BASIC_INFORMATION;
typedef struct
{
LARGE_INTEGER liIdleTime;
DWORD dwSpare[76];
} SYSTEM_PERFORMANCE_INFORMATION;
typedef struct
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SYSTEM_TIME_INFORMATION;
LARGE_INTEGER m_liOldIdleTime;
LARGE_INTEGER m_liOldSystemTime;
unsigned long m_fNewUsges;
----------------------------------
void CMy111View::OnCpuUse()
{
// TODO: Add your command handler code here
char CpuUse[20];
SYSTEM_PERFORMANCE_INFORMATION SysPerfInfo;
SYSTEM_TIME_INFORMATION SysTimeInfo;
SYSTEM_BASIC_INFORMATION SysBaseInfo;
double dbIdleTime;
double dbSystemTime;
LONG status;
typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
PROCNTQSI NtQuerySystemInformation;
NtQuerySystemInformation = (PROCNTQSI)GetProcAddress(
GetModuleHandle("ntdll"),
"NtQuerySystemInformation"
);
if (!NtQuerySystemInformation)
{
return;
}
// get number of processors in the system
status = NtQuerySystemInformation(SystemBasicInformation,
&SysBaseInfo,sizeof(SysBaseInfo),NULL);
if (status != NO_ERROR)
{
return;
}
status = NtQuerySystemInformation(SystemTimeInformation,
&SysTimeInfo,sizeof(SysTimeInfo),0);
if (status!=NO_ERROR)
{
return;
}
// get new CPU's idle time
status = NtQuerySystemInformation(SystemPerformanceInformation,
&SysPerfInfo,sizeof(SysPerfInfo),NULL);
if (status != NO_ERROR)
{
return;
}
// if it's a first call - skip it
if (m_liOldIdleTime.QuadPart != 0)
{
// CurrentValue = NewValue - OldValue
dbIdleTime = Li2Double(SysPerfInfo.liIdleTime) - Li2Double(m_liOldIdleTime);
dbSystemTime = Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(m_liOldSystemTime);
// CurrentCpuIdle = IdleTime / SystemTime
dbIdleTime = dbIdleTime / dbSystemTime;
// CurrentCpuUsage% = 100 - (CurrentCpuIdle * 100) / NumberOfProcessors
dbIdleTime = 100.0 - dbIdleTime * 100.0 / (double)SysBaseInfo.bKeNumberProcessors + 0.5;
m_fNewUsges = (UINT)dbIdleTime;
sprintf(CpuUse,"%d%%",m_fNewUsges);
AfxMessageBox(CpuUse);
}
// store new CPU's idle and system time
m_liOldIdleTime = SysPerfInfo.liIdleTime;
m_liOldSystemTime = SysTimeInfo.liKeSystemTime;
}
wycaicai
2005-03-26
打赏
举报
回复
大家帮帮忙
wycaicai
2005-03-26
打赏
举报
回复
我的是2003的系统
直接添加引用ntdll.dll,添加不上。
怎么办?
就没有其他的办法了吗?
oyljerry
2005-03-26
打赏
举报
回复
调用NTDLL.DLL中未公开API NtQuerySystemInformation枚举本地系统进程
wycaicai
2005-03-26
打赏
举报
回复
NtQuerySystemInformation我怎么不能用?
我的系统是win 2003的,还有我发现有个函数GetSystemTimes(),这个函数我也不能用,他可以返回IdleTime,KernelTime和UserTime
利用shell脚本来
监控
linux系统的负载与
CPU
占用
情况
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本...在没有nagios
监控
软件的
情况
下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与
CPU
占用
的使用
情况
。 一、安装
高频面试题:服务器
CPU
占用
过高怎么办?搞定只需简单7步
题目如下:有一个SpringBoot项目上线后,发现其部署所在的Linux服务器
CPU
占用
过高,该如何排查解决? 这是一道比较常见的线上排错
问
题,接下来就让我们我们来分析一下这个
问
题的解决过程吧。 二. 解决过程 1.
问
题...
优化你的计算机性能:如何根据
CPU
占用
率决定硬件升级
根据
CPU
占用
率的不同
情况
,可以考虑升级
CPU
、扩充内存、更新硬盘驱动器、网络带宽升级或全面升级整个系统等不同的硬件升级方案。在选择硬件升级方案时,需要综合考虑
CPU
占用
率、其他硬件指标、预算限制和系统需求等...
2021-09-26
面试二
问
了整个项目的整体的流程,为什么选择某些技术或者基础组件 1.自我介绍 2.挑一个项目,画项目的架构图 Kafka发送数据之后立即返回还是等待ACK之后才返回? Kafka工作流程: producter先从Zookeeper获取...
面试官常
问
:MySQL 服务
占用
cpu
100%,如何排查
问
题?
对于互联网公司,线上
CPU
飙升的
问
题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章