为了庆祝我团购8G231成功,分享一下我之前写的用来解决“Mac系统吃内存太严重”的Shell脚本
Gbit 59 Star 0 Score 0.00
发布于 11 年多前
更新于 3 年多前
6782 浏览

为了庆祝我团购8G231成功,分享一下我之前写的用来解决“Mac系统吃内存太严重”的Shell脚本。 之前用过13寸的pro,现在用的是15寸的pro,即将用上13寸的8G版air,我是程序员,所以总开一大堆程序,曾经一度被Mac系统的内存机制搞的很郁闷,动不动内存就被啃光了。 一怒之下,我就自己写了一小段Shell脚本,用来解决这个内存问题。 脚本内容为: #!/bin/bash #check and clean memory #Powered by YangBalu maxmeminc=300 maxmemfree=300 memsizenow=vm_stat | awk '/page size/ {print $8}' let “memincnow=vm_stat | awk '/Pages inactive/ {print($3-0)}' * $memsizenow / 1024 / 1024” let “memfreenow=(vm_stat | awk '/Pages free/ {print($3-0)}' + vm_stat | awk '/Pages speculative/ {print($3-0)}') * $memsizenow / 1024 / 1024” if [ $memincnow -gt $maxmeminc -a $memfreenow -lt $maxmemfree ] ; then purge

脚本结束。 把脚本随意命名为sh文件,在Cron里添加一条每分钟运行该sh文件的记录。 然后就没问题了。 提示:这个脚本需要用到“purge”命令,我不知道没装过Xcode的是否有这个命令,如果没有的话就找一个……

分享得 Gbit :
15 回复
战斗猪 Gbit: 109 11 年多前

8g搞程序怎么样?我现在6g,不过不是ssd,写个代码啥,开个ps就卡的就啥一样,很担心8g不够

YangBalu Gbit: 59 11 年多前

@战斗猪 8g够用。

rickqian123 Gbit: 25 11 年多前

画蛇添足…都不搞清楚unix内存管理

YangBalu Gbit: 59 11 年多前

@rickqian123 劳烦您指点一下?

团员
hussion Gbit: 544 11 年多前

确实是画蛇添足…

huobazi Gbit: 151 11 年多前

看内存闲着就高兴啊

ifree64 Gbit: 29 11 年多前

说搞不清楚UNIX内存管理的人麻烦指点一下。 我个人感觉osx有内存泄漏,那个非活跃内存越来越大。

SamZeng Gbit: 17 11 年多前

能指点一下原理是什么吗?

rickqian123 Gbit: 25 11 年多前

mac 内存管理 用这个关键词搜索,google baidu都有

ArrayNil Gbit: 13 11 年多前
#10 0

righqian123正解,mac的inactive有点像linux下面的cached,没必要purge

YangBalu Gbit: 59 11 年多前
#11 0

由于帖子已经无法编辑,所以统一在此楼回复以下,如果@蓝子 看到这个回复的话,麻烦帮我把这段回复编辑进主帖,先行谢过。 感谢各位说我“画蛇添足”的“大神”们的点拨。 但是我只知道我经常碰到这么一种情况:明明不活跃内存还有5G之多,Mac系统却非要狂吞吐我的硬盘,从而导致我的系统异常缓慢,此时我只能purge。 而且我身边的用Mac的朋友们也有不少碰到过同样的问题。 而且我搜索了网上也有不少的人有相同的抱怨。 当然,我向“大神”们承认,这是我以及与我有相同遭遇的人们的人品问题,与“神”一般的Mac系统没有半毛钱关系,所以,“大神”们,不用再批评我了,我知道“错”了。

另:和我朋友同样问题的小白们,如果你们也发现系统超级慢,但是非活跃内存却很大,那你应该是适合用我这段代码的,有不懂的提出来,咱们做小白的集体探讨。

再次重申:没有碰到过该问题并且坚信Mac的内存管理机制是神并且只会说“画蛇添足”的“大神”们,我的帖子请不起你们来赏光,谢谢。当然,如果你们是来提供解决方案的,我热烈欢迎。

YangBalu Gbit: 59 11 年多前
#12 0

上面的回复中有两组错别字,分别是第一段的“以下”应为“一下”,倒数第二段的“和我朋友同样问题的小白们”应为“和我碰到同样问题的小白们”。 特此更正。

rickqian123 Gbit: 25 11 年多前
#13 0

怎么说呢,这种问题不用太在意,我觉得你碰到的是一些软件问题或者是Mac的问题。

你那个现像我原来在用realplayer for mac的时候碰到过,非活跃内存基本把所有内存占满了,系统出现非常慢。你其实是只需要在这种情况下purge,其它时候不用追求“可用空间”。

YangBalu Gbit: 59 11 年多前
#14 0

@rickqian123 我并没有追求“可用空间”,我的内存是8G,请仔细看我的Shell代码,代码里的规则是“当可用内存不足300M,并且,注意,这里是并且,并且非活跃内存大于300M,此时才会purge”。 所以,这并不是追求“可用空间”,而是在逼不得已的时候去自动执行purge。

团员
vince Gbit: 381 9 年多前
#15 0

我的是10G,现在发现,不够啊,看来16G内存标配才行

回复
登录后再评论
苹果团 购买苹果产品的完美之地