社区
C语言
帖子详情
在windows下, 怎么获得一个进程占用多少内存, 含有多少线程?
Sylix
2004-03-26 12:51:46
在windows下, 怎么获得一个进程占用多少内存, 含有多少线程?
...全文
198
2
打赏
收藏
在windows下, 怎么获得一个进程占用多少内存, 含有多少线程?
在windows下, 怎么获得一个进程占用多少内存, 含有多少线程?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sylix
2004-03-26
打赏
举报
回复
哪位高手能指教一下?
wythust
2004-03-26
打赏
举报
回复
// PView.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include <string>
#include <iomanip>
#include <iostream>
#include <windows.h>
#include <Winternl.h>
using namespace std;
#define QWORD __int64
bool FetchSystemTimes(QWORD& sysTime);
QWORD ProcessTime;
QWORD SysTime;
int _tmain(int argc, _TCHAR* argv[])
{
FILETIME creationTime; //进程建立时间
FILETIME exitTime; //进程退出时间
FILETIME kernelTime; //进程内核模式时间
FILETIME userTime; //进程用户模式时间
FLOAT processCpuUsage = 0.0F;
if (argc == 1)
{
cout << "pview ProcessID";
exit(0);
}
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,false,atol(argv[1]));
if (hProcess == NULL)
{
cout << "Please input a valid Process ID";
exit(0);
}
QWORD sysTime = 0; //进程空闲时间
for(;;)
{
FetchSystemTimes(sysTime);
GetProcessTimes(hProcess,&creationTime,&exitTime,&kernelTime,&userTime);
QWORD cpuUsage = (userTime.dwLowDateTime + (userTime.dwHighDateTime << 32))
+ (kernelTime.dwLowDateTime + (kernelTime.dwHighDateTime << 32));
QWORD idleTime = (sysTime / 100);
processCpuUsage = static_cast<FLOAT>(cpuUsage - ProcessTime)
/ static_cast<FLOAT>(idleTime - SysTime);
ProcessTime = cpuUsage;
SysTime = idleTime;
cout << setw(15); //设置输出格式
cout << setprecision(10);
cout << setiosflags(ios::showpoint);
cout << setiosflags(ios::fixed);
cout << processCpuUsage;
cout << "\n";
Sleep(100);
}
return 0;
}
// 获取系统的内核/用户以及空闲时间
bool FetchSystemTimes(QWORD& sysTime)
{
typedef struct _SYSTEM_TIME_INFORMATION
{
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
} SYSTEM_TIME_INFORMATION;
SYSTEM_TIME_INFORMATION sysTimeInfo;
typedef LONG (WINAPI *PROCNTQSI)(UINT,PVOID,ULONG,PULONG);
PROCNTQSI NtSystemInfo;
NtSystemInfo = (PROCNTQSI)GetProcAddress
(GetModuleHandle("ntdll"),"NtQuerySystemInformation");
NtSystemInfo(3,&sysTimeInfo,sizeof(sysTimeInfo),NULL);
sysTime = sysTimeInfo.liKeSystemTime.QuadPart;
return false;
}
刚才看到的一个贴子,借花献佛,希望对楼主有用
一个
进程
最多能包含多少
线程
//小watch水平有限,希望大家多多指正文中的错误,共同进步 最近在学习os的多
线程
课程,第
一个
实验室关于
windows
的多
线程
,用mfc实现。实验蛮简单的,但是,我不由想到了,
一个
进程
最多能包含多少个
线程
。 在网上查了查,貌似也没找到多少这方面的资料。大部分都是关于服务器多
线程
链接sever的,关于本机可执行exe的
进程
数倒是没有什么涉及。 我觉得唯一
一个
有用的出处:http://bbs
[多
线程
]
Windows
和Linux中
一个
线程
占用
多少
内存
之前有看到网上的文章,说在linux中
一个
线程
占用
8M的
内存
。也有文章说这种说法不对。这里简单看一下,
windows
和linux中,
一个
线程
占多大。
一个
进程
能运行多少
线程
记录瞬间。
探究:
一个
进程
最多能开多少个
线程
一个
进程
最多能开多少个
线程
并没有
一个
固定的答案,它受到系统资源、操作系统调度策略以及应用程序自身因素等多方面的影响。在实际开发中,开发者需要深入了解这些因素,并通过合理的设计和调优,找到适合应用程序的
线程
数量,以充分发挥系统的性能,同时保证程序的稳定性和可靠性。希望本文能帮助读者对这一问题有更深入的理解,在多
线程
编程中做出更明智的决策。
分布鲁棒数据驱动的多离散场景电热综合能源系统分布鲁棒优化算法研究(Matlab代码实现)
【分布鲁棒】数据驱动的多离散场景电热综合能源系统分布鲁棒优化算法研究(Matlab代码实现)
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章