吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 354|回复: 9
收起左侧

[资源求助] 请求一个能监控软件CPU和内存并能生成表格的程序

[复制链接]
chenjian0032 发表于 2024-6-11 16:05
100吾爱币
如题所示,本地安装了一个PC软件,需要时刻监测该软件的在任务管理器中CPU和内存占用的数据,可以按照时间间隔记录当前时间点的CPU和内存占用情况,生成对应的折线图

最佳答案

查看完整内容

[md]## 写在前面 写了一个PowerShell脚本,完全满足了你所要求的功能。 ## 使用方法 在代码中指定位置自行替换需要监控的进程名称、日志的保存路径、记录周期。 ``` # 设置要监视的进程名称 $processName = "Notepad3" # 设置日志文件的路径(CSV格式) $logFilePath = "C:%users\52Pojie\Desktop\ProcessMonitorLog.csv" # 设置检查进程资源使用的间隔时间(秒) $checkInterval = 5 ``` > 日志以时间、CPU占用 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bgwu666 发表于 2024-6-11 16:05

写在前面

写了一个PowerShell脚本,完全满足了你所要求的功能。

使用方法

在代码中指定位置自行替换需要监控的进程名称、日志的保存路径、记录周期。

# 设置要监视的进程名称
$processName = "Notepad3"

# 设置日志文件的路径(CSV格式)
$logFilePath = "C:\Users\52Pojie\Desktop\ProcessMonitorLog.csv"

# 设置检查进程资源使用的间隔时间(秒)
$checkInterval = 5

日志以时间、CPU占用、内存占用为标题,文件后缀为.csv。

完整代码

# 设置要监视的进程名称
$processName = "Notepad3"

# 设置日志文件的路径(CSV格式)
$logFilePath = "C:\Users\52Pojie\Desktop\ProcessMonitorLog.csv"

# 设置检查进程资源使用的间隔时间(秒)
$checkInterval = 5

# 检查进程是否存在
$process = Get-Process -Name $processName -ErrorAction SilentlyContinue

# 如果进程存在,开始监视
if ($process) {
    Write-Host "开始监视进程:$processName"

    # 创建或清空日志文件
    "时间,CPU使用率,内存使用(MB)" | Out-File $logFilePath

    # 监视进程资源使用的循环
    while ($true) {
        # 获取当前时间
        $currentTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"

        # 获取进程的CPU和内存使用情况
        $cpuUsage = $process.CPU
        $memoryUsage = $process.WS / 1MB

        # 格式化日志信息为CSV格式
        $logInfo = "$currentTime,$cpuUsage,$memoryUsage"

        # 写入日志信息到CSV文件
        $logInfo | Out-File $logFilePath -Append

        # 输出到控制台
        Write-Host $logInfo

        # 等待指定的时间间隔
        Start-Sleep -Seconds $checkInterval

        # 检查进程是否仍然存在
        $process = Get-Process -Name $processName -ErrorAction SilentlyContinue
        if (-not $process) {
            Write-Host "进程 $processName 已结束。监视停止。"
            break
        }
    }
} else {
    Write-Host "未找到进程:$processName"
}

运行截图

https://img.chkaja.com/63c6c35e0e3ae4d2.png
https://img.chkaja.com/f22eff2bc06116d3.jpg

可能会遇见的问题

  • Excel打开CSV文件,所有内容都挤在一个单元格内。
    解决办法:选中第一列,点击工具栏-数据-分列。
  • 代码保存后运行乱码。
    解决办法:将文件保存为ANSI编码。

写在最后

制作不易,请完结悬赏!:)

xxkz 发表于 2024-6-11 16:12
虽然不精通excel  我想是不是可以用excel生成呢
 楼主| chenjian0032 发表于 2024-6-11 16:14
xxkz 发表于 2024-6-11 16:12
虽然不精通excel  我想是不是可以用excel生成呢

excel可以生成,但是需要以excel记录cpu和内存的数据
CXA6712 发表于 2024-6-11 16:40
AID64,可以持续记录电脑各传感器状态,还可以输出表格
bgwu666 发表于 2024-6-11 16:50
CXA6712 发表于 2024-6-11 16:40
AID64,可以持续记录电脑各传感器状态,还可以输出表格

楼主需要的应该是某个程序的资源使用状态,AIDA64貌似做不到
CXA6712 发表于 2024-6-11 16:52
bgwu666 发表于 2024-6-11 16:50
楼主需要的应该是某个程序的资源使用状态,AIDA64貌似做不到

看快了,没看见软件状态
luofeg 发表于 2024-6-11 17:42
win的系统可以使用自带的资源监控功能就可以使现,也可以借助三方工具实现  。 linux的话只能借助三方工具实现了,如zabbix 或者 prometheus 等工具
 楼主| chenjian0032 发表于 2024-6-13 09:32
本帖最后由 chenjian0032 于 2024-6-13 09:33 编辑
bgwu666 发表于 2024-6-11 18:18
[md]## 写在前面
写了一个PowerShell脚本,完全满足了你所要求的功能。

亲测可用,不过佬,我为啥是记在一个表格里,内存和CPU、时间没有分列
C:\Users\chenjian\Desktop
bgwu666 发表于 2024-6-13 11:22
chenjian0032 发表于 2024-6-13 09:32
亲测可用,不过佬,我为啥是记在一个表格里,内存和CPU、时间没有分列

仔细看一下我的回复哈,里面有解决办法,是Excel设置的问题。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 11:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表