社区
C语言
帖子详情
在windows下, 怎么获得一个进程占用多少内存, 含有多少线程?
Sylix
2004-03-26 12:51:46
在windows下, 怎么获得一个进程占用多少内存, 含有多少线程?
...全文
159
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;
}
刚才看到的一个贴子,借花献佛,希望对楼主有用
python
线程
进程
、异步IO
具有多
线程
能力的计算机因有硬件支持而能够在同一时间 执行多于
一个
线程
,进而提升整体处理性能。 该章节主要包括
线程
进程
的概念,基于python的
线程
进程
实现,GIL锁的影响,消费者生产者模型,
进程
池的应用以及IO...
进程
和
线程
的资源比较
[via jackey] 这里讲的
进程
和
线程
是指
windows
下的,Unix下的定义有些不同。
进程
和
线程
都是操作系统程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。
一个
程序至少有
一个
进程
,
一个
进程
至少有
一个
...
Windows
线程
与
进程
Windows
线程
与
进程
线程
的定义
线程
适用范围
线程
特点
进程
定义
进程
的特点
线程
与
进程
的区别
线程
的状态
线程
的基本状态
进程
的状态
进程
的3个基本状态
线程
的定义
线程
(英语:thread)是操作系统能够进行运算调度的最小...
何谓
线程
?何谓
进程
?何谓多
线程
?
线程
:
线程
是指
进程
内的
一个
执行单元,也是
进程
内的可调度实体. 与
进程
的区别: (1)地址空间:
进程
内的
一个
执行单元;
进程
至少有
一个
线程
;它们共享
进程
的地址空间;而
进程
有自己独立的地址空间; (2)资源拥有:
进程
是资源...
Windows
CE
进程
、
线程
和
内存
管理
进程
、
线程
、
内存
管理是
一个
内核最基本的服务,也是
一个
内核最主要的组成部分。这几方面的知识是
一个
软件开发人员必须掌握的基础知识。虽然
一个
人不懂这些知识也能编写简单的程序,但这样的程序只能算是皮毛。掌握了...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章