做网站的课题背景介绍,山西专业网站建设大全,定制软件开发公司介绍,python开发wordpress目录 前言代码 前言
最近做软件测试需要监控软件内存、cpu和GDI对象数#xff0c;用psutil库可以很方便的实现监控内存和CPU#xff0c;但是GDI好像还不行#xff0c;最后来的win32api来调用的Windows API接口来实现GDI监控的#xff0c;在此做个记录。
代码
import psu… 目录 前言代码 前言
最近做软件测试需要监控软件内存、cpu和GDI对象数用psutil库可以很方便的实现监控内存和CPU但是GDI好像还不行最后来的win32api来调用的Windows API接口来实现GDI监控的在此做个记录。
代码
import psutil
import os
import pandas as pd
import time
import win32gui
import win32process
import win32con
import win32api# 定义需要监控的进程名称
process_name xxx.exe# 定义记录数据的文件名
data_file monitor_data.xlsx# 获取进程信息并记录到Excel文件中
def monitor_process(process_name, data_file ):process_id get_process_id(process_name)if process_id is None:print(未找到进程)returnprocess psutil.Process(process_id)cpu_percent process.cpu_percent(intervalNone)mem_info process.memory_info()commit_size mem_info.vms / 1024 / 1024 # 转换为MB# GDIPy_process win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, process_id)gdi_objects win32process.GetGuiResources(Py_process, win32con.GR_GDIOBJECTS)data {Time: [datetime.now().strftime(%Y-%m-%d %H:%M:%S)], CPU: [cpu_percent],Memory: [mem_info.rss / 1024 / 1024], Commit Size: [commit_size], GDI Objects: [gdi_objects]}df pd.DataFrame(data)if os.path.exists(data_file):df_old pd.read_excel(data_file, engineopenpyxl, index_col0)df_new pd.concat([df_old, df])df_new.to_excel(data_file)else:df.to_excel(data_file)