怎样得到一个线程的CPU使用率阿?加急,弟兄们帮忙啊

budded 2004-11-18 03:23:54
怎样得到一个线程的CPU使用率阿?加急,弟兄们帮忙啊
...全文
199 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterpub 2004-11-23
  • 打赏
  • 举报
回复
这是取得进程的,不是线程
renfeiyang 2004-11-18
  • 打赏
  • 举报
回复
学习
yqdragon 2004-11-18
  • 打赏
  • 举报
回复
*****学习*****
gg137zeus 2004-11-18
  • 打赏
  • 举报
回复
up
cwwa 2004-11-18
  • 打赏
  • 举报
回复
楼上的该说的都说了,希望能帮到楼主
drunkboy 2004-11-18
  • 打赏
  • 举报
回复
学习。。。。。
masterjames 2004-11-18
  • 打赏
  • 举报
回复
同意楼上
beyondtkl 2004-11-18
  • 打赏
  • 举报
回复
windows核心编程里有代码 好像..
  • 打赏
  • 举报
回复
GetProcessUse(PROCESS_INFORMATION proc,_JOBOBJECT_BASIC_ACCOUNTING_INFORMAT Info)
{

Handle hJob=CreateJobOjbect(NULL,NULL);
AssignProcessToJobObject(hjob,proc.hProcess,NULL,0,0);
QueryInformationJobOjbect(hJob,Info)
closeHandle(hjob);
}

typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION
{
LARGE_INTEGER TotalUserTime;
LARGE_INTEGER TotalKernelTime;
LARGE_INTEGER ThisPeriodTotalUerTime
LARGE_INTEGER thisPeriodTotalKernelTime;
DWORD TotalPageFaultCount
DWORD TotalProcess
DWORD ActiveProcesses
DWORD TotalTerminatedProcesses;
}_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,*_JOBOBJECT_BASIC_ACCOUNTING_INFORMATION
请提交FAQ
Friecin 2004-11-18
  • 打赏
  • 举报
回复
bool CanGetCPUUsage()
{
//os version information structure
OSVERSIONINFO OsVersionInfo;
OsVersionInfo.dwOSVersionInfoSize= sizeof(OSVERSIONINFO);
//get os version
GetVersionEx(&OsVersionInfo);
//only run in win2000/nt OS
if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS )
{
// MessageBox("Only run in Win2K/NT,\\nYour OS is not Win2000/NT!","prompt:");
return false;
}

//Get NtQuerySystemInformation Address from ntdll.dll
NtQuerySystemInformation =(NTQSI)GetProcAddress(
GetModuleHandle("ntdll.dll"),
"NtQuerySystemInformation" );

if (!NtQuerySystemInformation)
{
// MessageBox("no this function");
return false;
}

// get num of processors
status = NtQuerySystemInformation(0,&SysBaseInfo,sizeof(SysBaseInfo),NULL);
if (status != NO_ERROR)
{
// MessageBox("failed to query basic info(num of processors)");
return false;
}
return true;
}
double GetCPUUsage()
{
// get system time
status = NtQuerySystemInformation(3,&SysTimeInfo,sizeof(SysTimeInfo),0);
if (status!=NO_ERROR)
{
// MessageBox("failed to get system time!");
return ret_error;
}

// get cpu idle time
status = NtQuerySystemInformation(2,&SysPerfInfo,sizeof(SysPerfInfo),NULL);
if (status != NO_ERROR)
{
// MessageBox("failed to get cpu time");
return ret_error;
}
if (liOldIdleTime.QuadPart != 0)
{
// new cpu Time = NewTime - OldTime
dbCpuIdleTime =LI64ToDouble(SysPerfInfo.liIdleTime)-LI64ToDouble(liOldIdleTime);
dbSysTime =LI64ToDouble(SysTimeInfo.liKeSystemTime)-LI64ToDouble(liOldSysTime);

//get cpu usage
unCpuUsage=100 - 100*(dbCpuIdleTime/dbSysTime)/(double)SysBaseInfo.bKeNumberProcessors+0.5;
}

// store new cpu idle and system time
liOldIdleTime = SysPerfInfo.liIdleTime;
liOldSysTime = SysTimeInfo.liKeSystemTime;

return unCpuUsage;
}
详情可查看下方数据集可视化效果。 【数据集概况】 · 检测类别(中文):[中央处理器(CPU)] · 训练集:810 张 · 验证集:82 张 · 测试集:40 张 · 总计:932 张 该数据集聚焦于工业制造环境中中央处理器的精准识别,通过多背景、多光照条件下的图像采集,构建了覆盖典型生产场景的高质量样本库。数据集中中央处理器以标准封装形态呈现,背景涵盖金属台面、彩色渐变板及纹理表面,充分模拟实际生产线中的视觉干扰因素,为自动化质检与智能分拣系统提供了可靠的数据支撑。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 37 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9650** mAP50-95 | 0.9173 Precision | 0.9967 Recall | 0.9647 train/box_loss | 0.4580 train/cls_loss | 0.2414 val/box_loss | 0.3658 val/cls_loss | 0.2987 【训练过程分析】 37 轮训练后 mAP50 达到 0.9650,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。mAP50-95 为 0.9173,和 mAP50 差距仅 0.05,框的定位精度也很扎实。 【模型性能评估】 Precision 0.9967、Recall 0.9647,精召双高,模型对中央处理器的检测能力强。 【预测效果展示】 验证集预测效果较好,检测框基本准确覆盖中央处理器,置信度整体偏高。 【改进建议】 1...

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧