python查看mac的usb信息,MAC上命令行、Python 脚本查看系统内存使用量

命令行查看 Mac 内存使用情况

代码:

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

输出:

PhysMem: 7563M used (2371M wired), 628M unused.

Python 脚本查看

代码:

#!/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 )

输出:

Wired Memory: 2430 MB

Active Memory: 1743 MB

Inactive Memory: 1724 MB

Free Memory: 1311 MB

Real Mem Total (ps): 4830.504 MB

简单的说,Mac OS X的[内存]使用情况分为:wired, active, inactive和free四种。

wired是系统核心占用的,永远不会从系统物理[内存]中驱除。

active表示这些[内存]数据正在使用中,或者刚被使用过。

inactive表示这些[内存]中的数据是有效的,但是最近没有被使用。

free, 表示这些[内存]中的数据是无效的,这些空间可以随时被程序使用。

当 free的[内存]低于某个值(这个值是由你的物理[内存]大小决定的),系统则会按照以下顺序使用 inactive的资源。首先 如果 inactive的数据最近被调用了,系统会把它们的状态改变成 active,并接在原有 active[内存]逻辑地址的后面, 如果 inactive的 [内存]数据最近没有被使用过,但是曾经被更改过而还没有在硬盘的相应虚拟[内存]中做修改,系统会对相应硬盘的虚拟[内存]做修改,并把这部分物理[内存]释放为 free供程序使用。如果 inactive[内存]中得数据被在映射到硬盘后再没有被更改过, 则直接释放成 free。最后如果 active的[内存]一段时间没有被使用,会被暂时改变状态为 inactive。    所以说,如果你的系统里有少量的 free memeory和大量的 inactive的memeory,说明你的[内存]是够用的,系统运行在最佳状态,只要需要,系统就会使用它们,不用担心。而反之如果系统的 free memory和 inactive memory都很少,而 active memory 很多,说明你的[内存]不够了。当然一开机,大部分[内存]都是 free,这时系统反而不在最佳状态,因为很多数据都需要从硬盘调用,速度反而慢了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值