python监控软件内存、cpu和GDI

目录

前言

最近做软件测试需要监控软件内存、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("未找到进程")
        return
    process = psutil.Process(process_id)
    cpu_percent = process.cpu_percent(interval=None)
    mem_info = process.memory_info()
    commit_size = mem_info.vms / 1024 / 1024  # 转换为MB
    # GDI
    Py_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, engine='openpyxl', index_col=0)
        df_new = pd.concat([df_old, df])
        df_new.to_excel(data_file)
    else:
        df.to_excel(data_file)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值