小赖子的英国生活和资讯

想知道CHROME到底有多占内存么? WINDOWS下批处理查看程序内存用量

阅读 桌面完整版

我家里用的是HPZ800的服务器, 所以长年不关机不重启, 今天我看了CHROME好吃内存:

task-manager-details 想知道CHROME到底有多占内存么? WINDOWS下批处理查看程序内存用量 I.T. 程序设计

task-manager-details

在 Processes 页, 操作系统列出了每个程序的吃内存情况, 我们可以看到CHROME很吃内存.

task-manager-processes

然而, 我想着写一个小命令行工具, 练练手.
Github: https://github.com/DoctorLai/BatchUtils/blob/master/mem.cmd

@echo off
REM Calculate Total Memory Consumption for a Process

setlocal enabledelayedexpansion
set prog=%1

if [%1]==[] (
  echo Usage: %0 Process
  goto end
)
set sum=0
@for /F "tokens=5" %%i in ('tasklist ^| grep !prog!') do (
    set mem=%%i
    set mem=!mem:,=!
    set /a sum=sum+!mem!
)

echo Total Memory for !prog! is !sum! K
set /a sum=sum/1024
echo Total Memory for !prog! is !sum! MB
set /a sum=sum/1024
echo Total Memory for !prog! is !sum! GB

:end

原理就是用 for /f 来对每一行的输出进行字符串分割, tokens=5 会只选择第五列, 也就是内存用量.

我们需要用 !variable:,=! 来把数字中的逗号去掉, 然后用 set /a 来进行数字叠加, 最后面我们需要启用 setlocal enabledelayedexpansion 在WINDOWS批处理中开启变量支持 – 否则变量只会在批处理启动的时候替换一次.

在LINUX下我们就不需要这么麻烦了, 因为已经有很多现成好用的工具, 比如 wc, awk, cut 这些命令可以通过管道来完成同样的任务.

windows-mem-batch

英文: Introducing the Batch Utility for Windows – mem.cmd

Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
我用那 Mini PC 小电脑, 一开多个Chrome标签窗口就慢得狠.

Mini PC 小电脑的任务管理器

而且Chrome浏览器还卡死了, 所以只能用 taskkill /im:chrome.exe /f 来终止所有Chrome窗口进程.

用 Task Kill 终止所有 Chrome.exe 进程

CPU

Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz

Base speed: 2.30 GHz
Sockets: 1
Cores: 4
Logical processors: 8
Virtualization: Enabled
L1 cache: 256 KB
L2 cache: 1.0 MB
L3 cache: 6.0 MB

Utilization 64%
Speed 3.50 GHz
Up time 3:06:37:14
Processes 414
Threads 5212
Handles 2792388

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version