linux mac怎么看内存,mac下查看内存信息

mac当中的内存使用标示跟Linux并不一样,mac里面有这样的四种:

wired, active, inactive, free

其中wired是不能通过操作系统调度来协调的内存,用了多少就是多少;

active是表示当前系统的软件等使用所占用的内存,是有效的数据

inactive表示内存数据曾经被使用过,但最近没有使用,有效的数据

free表示数据无效,也就是随时可以被操作系统调度用来做别的事情

所以一般一个比较正常健康的操作系统的内存状态是inactive和free能够有相对充足的余量,一般来说操作系统都会尽可能地占用内存(“不用白不用”的策略),所以free可能并不是很大,不过inactive足够就表示其实内存还是够用的。

然后vm_stat的直接调用输出大概这样子

Mach Virtual Memory Statistics: (page size of 4096 bytes)

Pages free: 6850.

Pages active: 620164.

Pages inactive: 446778.

Pages speculative: 159203.

Pages throttled: 0.

Pages wired down: 863445.

Pages purgeable: 55353.

"Translation faults": 131845422.

Pages copy-on-write: 235645.

Pages zero filled: 128877820.

Pages reactivated: 244.

Pages purged: 384356.

File-backed pages: 452799.

Anonymous pages: 773346.

Pages stored in compressor: 0.

Pages occupied by compressor: 0.

Decompressions: 0.

Compressions: 0.

Pageins: 408195.

Pageouts: 0.

Swapins: 0.

Swapouts: 0.

输出的数字单位并不是M,不直观,可以自己手动计算转换为M,也可以通过这样的一个python程序(命名为mac_free.py)能够转化为更加可读的方式,编辑好mac_free.py 后执行python mac_free.py 可看到类似这样的结果

Wired Memory: 3110 MB

Active Memory: 2540 MB

Inactive Memory: 1837 MB

Free Memory: 31 MB

Real Mem Total (ps): 4610.809 MB

mac_free.py的代码如下

#!/usr/bin/python

'''

Created on Jun 1, 2014

@author: jay

'''

import subprocess

import re

# Get process info

ps = subprocess.Popen(['ps', '-caxm', '-orss,comm'], stdout=subprocess.PIPE).communicate()[0]

vm = subprocess.Popen(['vm_stat'], stdout=subprocess.PIPE).communicate()[0]

# Iterate processes

processLines = ps.split('\n')

sep = re.compile('[\s]+')

rssTotal = 0 # kB

for row in range(1,len(processLines)):

rowText = processLines[row].strip()

rowElements = sep.split(rowText)

try:

rss = float(rowElements[0]) * 1024

except:

rss = 0 # ignore...

rssTotal += rss

# Process vm_stat

vmLines = vm.split('\n')

sep = re.compile(':[\s]+')

vmStats = {}

for row in range(1,len(vmLines)-2):

rowText = vmLines[row].strip()

rowElements = sep.split(rowText)

vmStats[(rowElements[0])] = int(rowElements[1].strip('\.')) * 4096

print 'Wired Memory:\t\t%d MB' % ( vmStats["Pages wired down"]/1024/1024 )

print 'Active Memory:\t\t%d MB' % ( vmStats["Pages active"]/1024/1024 )

print 'Inactive Memory:\t%d MB' % ( vmStats["Pages inactive"]/1024/1024 )

print 'Free Memory:\t\t%d MB' % ( vmStats["Pages free"]/1024/1024 )

print 'Real Mem Total (ps):\t%.3f MB' % ( rssTotal/1024/1024 )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值