MacOS怎么查看进程占用内存是多少

news2025/2/24 23:59:40

一、背景

在Linux下可以使用 free 命令来方便的查看内存占用情况,如 free -g、free -m等,但MacOS下没有这个命令。

既然如此,那么MacOS里是否有类似的工具呢?

而我们又该如何查看整个PC的内存占用情况,及指定进程的内存占用情况呢?

别急,带着这些疑问请往下看:

二、方案

1、通过 top 命令来替代 free 命令

A). 查看全部进程的内存占用大小

top -l 1 | head -n 10 | grep PhysMem

PhysMem: 31G used (2485M wired), 223M unused.

B). 查看指定进程的内存占用大小

top -pid 72267 -l 1 | tail -n 1 | awk '{print $8}' 

1039M

2、通过 GUI 工具 “活动监视器” 查看内存

三、实验

3.1 查看系统总内存占用情况

先总体看看:

➜  libexec git:(stable) top -l 1 | head -n 10   
            
Processes: 643 total, 2 running, 641 sleeping, 4233 threads 
2023/06/07 11:03:11
Load Avg: 3.16, 2.53, 2.48 
CPU usage: 4.66% user, 10.83% sys, 84.49% idle 
SharedLibs: 698M resident, 117M data, 167M linkedit.
MemRegions: 859023 total, 10G resident, 372M private, 3227M shared.
PhysMem: 31G used (2485M wired), 223M unused.
VM: 289T vsize, 3778M framework vsize, 2603873(0) swapins, 4151090(0) swapouts.
Networks: packets: 189125397/149G in, 154096002/51G out.
Disks: 49163482/907G read, 64642095/1086G written.


PID    COMMAND          %CPU TIME     #TH    #WQ #PORTS MEM   PURG  CMPRS PGRP  PPID  STATE    BOOSTS       %CPU_ME %CPU_OTHRS UID FAULTS    COW    MSGSENT    MSGRECV    SYSBSD     SYSMACH    CSW        PAGEINS IDLEW     POWER INSTRS CYCLES USER                   #MREGS RPRVT VPRVT VSIZE KPRVT KSHRD
99759  DiskUnmountWatch 0.0  00:00.15 2      1   33     1745K 0B    1488K 99759 1     sleeping  0[0]        0.00000 0.00000    501 2912      78     174        491        4112       1205       1239       2       17        0.0   0      0      xxxxxxxx               N/A    N/A   N/A   N/A   N/A   N/A  
98953  zsh              0.0  00:00.82 1      0   21     6449K 0B    6096K 98953 87986 sleeping *0[1]        0.00000 0.00000    501 15809     2691   193        91         252427     201        1058       58      0         0.0   0      0      xxxxxxxx               N/A    N/A   N/A   N/A   N/A   N/A 

再过滤出总内存占用这部分数据:

top -l 1 | head -n 10 | grep PhysMem

PhysMem: 31G used (2485M wired), 223M unused.

3.2 查看指定进程占用情况

在这个实验中,我们检查一下运行在 MacOS上(通过brew方案安装)的 Hadoop 3.3.1 (伪分布式)各个进程的占用情况。

Hadoop 集群总共包含以下几类进程:

➜  libexec git:(stable) jps -ml

72267 org.apache.hadoop.hdfs.server.namenode.NameNode
72369 org.apache.hadoop.hdfs.server.datanode.DataNode
72504 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
72779 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
72878 org.apache.hadoop.yarn.server.nodemanager.NodeManager

根据各自进程ID查询其内存占用大小:

top -pid 72267 -l 1 | tail -n 1 | awk '{print $8}'  #1039M
top -pid 72369 -l 1 | tail -n 1 | awk '{print $8}'  #788M
top -pid 72504 -l 1 | tail -n 1 | awk '{print $8}'  #957M
top -pid 72779 -l 1 | tail -n 1 | awk '{print $8}'  #495M
top -pid 72878 -l 1 | tail -n 1 | awk '{print $8}'  #500M

重要说明:
1、关于命令行参数:

【-l 1】只执行1次
【tail -n 1】取最后一条结果

2、关于内存计算方式在Linux与MacOS上的区别

MacOS与Linux在计算内存方式上还是不太一样的:
A). 对于Linux系统, 如果要查看某个进程的内存使用情况,通常有两种统计方式:
(1)实际使用内存;
(2)实际使用内存 + cache使用内存。
B). 对于 MacOS系统, 在统计内存使用时,一般还有个交换内存SwSS的概念,即"Swap" Set Size,指交换内存的大小。
虚拟内存指的是一个程序程序运行时,使用的内存空间。
虚拟内存的大小一般使用 VSS(Virtual Set Size)表示。
.
它的大小一般这样计算:
.
VSS = RSS + LSS + SwSS
.

  • RSS 的全称为:Resident Set Size,表示当前程序进程实际使用的内存大小。
  • LSS 的全称为:“Lazy” Set Size,表示系统同意给程序进程分配的,但是还没分配完成的内存大小。
  • SwSS 的全称为:“Swap” Set Size,指交换内存的大小,与 MacOS 不同,iOS 没有交换内存(一般Mobile device的实际存储空间比较有限)。

3.3 通过MacOS内置的GUI工具“活动监视器”查看指定进程占用情况

在这里插入图片描述
这里可以看出,GUI工具检测出的内存占用,与命令行里查出来的内存大小,在数据上保持着高度的一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3.1 PTQ与QAT的介绍

1. 前言 TensorRT有两种量化模式,分别是implicitly量化(隐式量化)以及explicitly量化(显性量化)。 隐式量化(trt7 版本之前) 只具备 PTQ 一种量化形式各层精度不可控显示量化 显性量化(trt8 版本之后) 支持带 QDQ 节点的 PTQ 以及 支持带 QDQ 节点的 QAT 两种量…

从零开始,申请开通微信小程序全流程

本系列文章适合三类同学:1.希望学习小程序开发;2.希望无代码、低代码拥有自己的小程序;3.快速搭建小程序交作业、交毕设的大学生 本系列文章将推出配套桌面端软件,配合软件,可实现傻瓜式开发小程序,请有需求…

计算机体系结构-期末复习

计算机体系结构-期末复习 第一章 量化设计与分析基础 | 1.2.6 并行度与并行体系结构的分类 应用程序中主要有两种并行: 数据级并行:同时操作许多数据项实现的并行任务级并行:创建能够单独处理并大量采用并行方式执行的工作任务 所有计算…

如何理解网络—网络框架介绍

目录 前言 一.计算机网络背景 二.局域网和广域网 三.网络协议 3.1产生的背景 3.2分层实现 四.OSI七层模型 4.1OSI七层模型的结构 4.2如何理解OSI七层模型 五.TCP/IP五层(或四层)模型 六.网络传输基本流程 7.网络中的地址管理 7.1IP地址 7.2MAC地址 7.3MAC地址和IP地址的区别和联…

2021-2023浙江省内八大MBA项目招生情况:注意大小年啊~

现如今国内的MBA教育呈现出一片繁华景象,过去的这些年来每年几乎都有新增加的MBA招生院校,浙江省内目前共有九大MBA招生院校,除了浙大独领风骚之外,其余八个MBA项目也都有自己的一席之地。纵观2023年的招生录取,小立老…

ValueError: Object arrays cannot be loaded when allow_pickle=False

一、问题 使用numpy读取数据时出现错误,ValueError: Object arrays cannot be loaded when allow_pickleFalse。 查了一下numpy.load()函数 用法 numpy.load(file, mmap_modeNone, allow_pickLeFalse, fix_mportsTrue, encoding‘ASCII’) 参数 file:…

【Android】AMS(三)APP启动流程

启动方式 在 Android 系统中,启动一个应用程序可以分为三种启动方式:热启动、冷启动和温启动。它们分别表示了不同的启动方式和启动过程。 热启动 热启动是指在已经打开并处于后台运行的应用程序中,再次通过图标进入应用程序的启动方式。这…

Spring Security OAuth停更了?探索官方进化版Spring Authorization Server的革新之处!

1、背景 Spring Security OAuth(spring-security-oauth2)停更 主要意思是:生命周期终止通知 Spring Security OAuth(spring-security-oauth2)项目已达到生命周期结束,不再由VMware,Inc.积极维护。 此项目已被Spring Security和Spring Author…

信创办公–基于WPS的EXCEL最佳实践系列 (设置多级列表)

信创办公–基于WPS的EXCEL最佳实践系列 (设置多级列表) 目录 应用背景操作步骤1、删除重复项2、部门绑定3、填入相关信息 应用背景 当我们在使用电子表格时,很多类型重复输入很麻烦,看起来也很复杂,我们就可以设置多级…

关于输入输出格式符的测试

对输出%m.nf的测试 m代表宽度,表示数据可以占m列n代表精确,表示小数占n列 以下用%6.3f进行测试,有两个问题: 1、这个m是包括小数点位数吗?(todo未果) 2、精确度n超过了是怎么处理的&#xff1f…

2023年第六届广西大学生程序设计竞赛(正式赛)题解

比赛题目链接,可以继续提交代码: 2023年第六届广西大学生程序设计竞赛(正式赛) | 知乎:如何评价第六届广西大学生程序设计竞赛? 难度题号备注签到题A J K已给出题解和代码普通题B D E H已给出题解和代码中等题C G–难题F I L M–…

机器学习方法在生态经济学领域中的应用

查看原文>>>基于R语言机器学习方法在生态经济学领域中的实践技术 近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c…

moviepy快速切分视频并保存片段

文章目录 1、直接使用ffmepg2、使用moviepy本身 moviepy安装最新版本: pip install moviepy --pre --upgrade版本是v2.0.0.dev2。 有两种方法一种快速的: 1、直接使用ffmepg from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip ffmpeg…

Lecture 12 Discourse

目录 Discourse 语篇三个关键的语篇任务Discourse Segmentation 语篇分段Unsupervised Approaches 无监督方法Supervised Approaches 有监督方法有监督语篇分段器Discourse Analysis 语篇解析语篇解析RST: Discourse UnitsRST: Discourse RelationsNucleus vs. Satellite 核心 …

2022计算机系统期末

直接导入无图片,先不改了,不过图片都是原题目,不影响对答案。 计算机系统2022期末 本课程的复习请以知识点复习为重,全部内容共有大小280个知识点,都可能在期末考试出现,仅通过往年试卷复习是远远不够的&…

从小白到大神之路之学习运维第35天---第三阶段---mysql数据库之主从复制配置

第三阶段基础 时 间:2023年6月7日 参加人:全班人员 内 容: Mysql数据库之主从复制配置 目录 前提环境配置 MySQL 5.7 版本的主从复制配置步骤 主 库 1. 在主库上开启二进制日志记录功能 2. 在主库上创建一个用于从库访问的备份用户 3. 在主…

VTK学习之光照和相机

目录 一、VTK光照 1、关于vtkLight常用的方法 2、最终效果 二、相机设置 1、相机设置 2、效果 一、VTK光照 通过设置光照,可以达到不同颜色的目的,参考博客: VTK修炼之道7_三维场景基本要素:光照_vtk 光照_沈子恒的博客-CSDN博客 1…

吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--02 Guidelines

02 Guidelines 本节将配合代码,介绍一些构建Prompt的基本原则和策略。 1) OpenAI API 首先开发者需要在OpenAI网站(https://platform.openai.com/account/api-keys)注册一个key,然后通过pip install openai安装openai三方库,再将key导入当…

Express路由

一、目标 能够使用express.static()快速托管静态资源能够使用express路由精简项目结构能够使用常见的express中间件能够使用express创建API接口能够在express中启用cors跨域资源共享 二、目录 初始ExpressExpress路由Express中间件使用Express写接口 1.1Express简介 1.什么…

微信小程序原生开发功能合集二十:导航栏、tabbar自定义及分包功能介绍

本章实现导航栏及tabbar的自定义处理的相关方法介绍及效果展示。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如下:    1. CSDN课程: https://edu.csdn.net/course/detail/37977    2. 5…