使用 Performance Monitoring API,它可以提供更详细和准确的性能数据,包括内存使用量、CPU使用率、网络使用量等。获取应用的内存使用量,cpu使用率
作者:
音视频技术
栏目:
公开
2023-08-19 09:31
86
使用 Performance Monitoring API 可以获取应用的内存使用量和 CPU 使用率。以下是一个简单示例,展示如何使用 Performance Monitoring API 获取这些数据:
#include <iostream>
#include <windows.h>
#include <psapi.h>
// 获取当前进程的内存使用量(单位:MB)
double GetMemoryUsage()
PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc));
SIZE_T memoryUsage = pmc.PrivateUsage;
return memoryUsage / 1024.0 / 1024.0;
// 获取当前进程的 CPU 使用率(百分比)
double GetCpuUsage()
FILETIME idleTime, kernelTime, userTime;
if (GetSystemTimes(&idleTime, &kernelTime, &userTime))
ULARGE_INTEGER idle, kernel, user;
idle.HighPart = idleTime.dwHighDateTime;
idle.LowPart = idleTime.dwLowDateTime;
kernel.HighPart = kernelTime.dwHighDateTime;
kernel.LowPart = kernelTime.dwLowDateTime;
user.HighPart = userTime.dwHighDateTime;
user.LowPart = userTime.dwLowDateTime;
ULONGLONG totalIdle = idle.QuadPart;
ULONGLONG totalKernelUser = kernel.QuadPart + user.QuadPart;
// 计算 CPU 使用率
double cpuUsage = (1.0 - (totalIdle * 1.0) / totalKernelUser) * 100.0;
return cpuUsage;
return -1.0; // 获取失败时返回 -1
int main()
while (true)
double memoryUsage = GetMemoryUsage();
double cpuUsage = GetCpuUsage();
std::cout << "Memory Usage: " << memoryUsage << " MB\n";
std::cout << "CPU Usage: " << cpuUsage << "%\n";
Sleep(1000); // 每秒更新一次数据
return 0;
这个示例使用了 Windows 平台上的相关函数来获取内存使用量和 CPU 使用率。请注意,不同平台可能有不同的实现方式。对于其他操作系统,请参考相应的文档或 API 来获取类似的信息。
内容由零声教学AI助手提供,问题来源于学员提问
本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://avmedia.0voice.com/?id=45891
在PostgreSQL中,可以将OracleSQL语法转换为以下形式:SELECTSCENE_ID,SCENE_NAME,COALESCE(SCENE_TYPE,1)ASSCENE_TYPE,REMARK,C...
! [rejected] Get_Board_Id -> Get_Board_Id (non-fast-forward)
error: failed to push some refs to 'https://git.eazytec.com/Byosoft/byocore-bmc-2.14.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its ...
2023-09-15 17:25:29,069 - org.springframework.web.servlet.DispatcherServlet -4531 [localhost-startStop-1] ERROR - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfram...
优化private static void initData(object sheetIndex, int row, int col, out ISheet sheet, out IRow sheetRow, out ICell sheetCol)
sheet = null;
sheetRow = null;
sheetCol = null;
RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.这个报错是什么原因
我的显卡是3060ti g6x.,请问gta5合适的画面设置是什么,请详细点
Invalid data found when processing input/0
请介绍adobe的这几个软件:ae、an、au、br、ch、dn、dw、ai、ic、id、lrc、me、ps、pl、pr
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the
NVIDIA driver README and your Linux distribution's docum...