文档章节

Mac下定时任务清理内存

康州牧码人
 康州牧码人
发布于 2016/10/26 20:08
字数 1102
阅读 394
收藏 18

    使用mac的小伙伴都知道,打开的程序多了用着用着,mac的内存就会飙升,如果你装有类似“腾讯电脑管家”,这货里面有个内存管理功能,类似于360的内存清理的浮动球,会发现他经常99%....虽然说,mac系统不会卡,很少会出现点击了没反应,但是你看着一个logo在Dock跳呀跳跳呀跳,也是超级不爽的嘛...

    据说,这是mac系统会缓存一部分的数据,增加下次访问速度;  不过,鬼知道他缓存的是啥,鬼知道他什么时候释放,他怎么知道我下一次需要啥文件,问都不问就缓存下来了.....

    

    其实也不是开很多程序,以我为例哈,我是做基于H5技术做hybrid的码农;首先,编辑器要打开吧,WebStorm....浏览器要打开吧,chrome....打包用的IDE,xcode....好,就这些,没有了,可这么几个应用,mac就经常会飙到99%的内存占用。

    

     在google搜索一顿,发现mac中有个命令叫 purge,使用这个命令可以清空系统内存;我的天,这就是我需要的,给他上个sudo,执行 sudo purge,内存占用马上下来了;那么问题又来了,这内存占用肯定是“野火烧不尽,春风吹又生”的,但是我总不能隔一会就手动在terminal里面去执行一次sudo purge呀...这不是更崩溃吗,还不如不清理呢....

    所以,聪明的人们发现了重复的劳动力的惯性任务都可以使用定时任务去完成,例如备份日志,备份数据库,监控这类;所以,我也打算使用定时任务来清除内存;

    MAC上定时任务可以使用launchctl或者crontab,我个人选择了launchctl;

    使用launchctl只需要以下几步,我会直接贴代码并且带上简单描述:    

        一、编写plist文件 com.xxxxxx.xxxx.plist文件 ,把这个文件丢到/Library/LaunchAgents下

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
  <dict>
    <!-- 名称,要全局唯一 -->
    <key>Gavin_Clear_RAM</key>
    <string>com.xxxxxx.xxxxx</string>

    <!-- 要运行的程序 路径 -->
    <key>Program</key>
    <string>/Users/xxxx/xxxxx/sh_file/clear.sh</string>

    <!-- 运行间隔,与StartCalenderInterval使用其一,单位为秒s -->
    <key>StartInterval</key>
    <integer>300</integer>

    <!-- 标准输入文件 -->
    <key>StandardInPath</key>
    <string>/Users/xxxxxx/xxxxx/sh_file/run-in.log</string>

    <!-- 标准输出文件 -->
    <key>StandardOutPath</key>
    <string>/Users/xxxxx/xxxx/sh_file/run-out.log</string>

    <!-- 标准错误输出文件 -->
    <key>StandardErrorPath</key>
    <string>/Users/xxxxx/xxxx/sh_file/run-err.log</string>

  </dict>  
</plist>

        有几个其他参数我没用到,所以省略了,有需要的话,可以找一下下面参考的文章

        二、编写bash代码 clear.sh:这个比较简单,我就是执行sudo purge,然后打印日志到某个文件

#!/bin/bash

sudo purge 

#文件路径,不需要日志可以吧日志注释掉
echo "clear success at :"+`date "+%Y/%m/%d %X"` >> /Users/xxxx/xxxx/sh_file/clear 

    这里面有两个点需要注意:

        1、sudo purge这个会让你输入管理员密码,所以你必须让这个指令不用输入密码;所以,请自行完成google/百度 :mac sudo 命令 不需要密码   

        2、必须让clear.sh是可执行的,给足够的权限 chmod 777 clear.sh

        三、把第一步创建的plist文件丢到/Library/LaunchAgents下,根据自己的需要,执行以下命令,一般是1,5就OK了,1执行,5查看有木有,satrt可以看到效果

1.launchctl load   /Library/LaunchAgents/com.xxxxx.xxxx.plist #加载plist文件
2.launchctl unload /Library/LaunchAgents/com.xxxxx.xxxx.plist #卸载
3.launchctl start  /Library/LaunchAgents/com.xxxxx.xxxx.plist #立即运行,先load,在执行start
4.launchctl stop   /Library/LaunchAgents/com.xxxxx.xxxx.plist #立即停止
5.launchctl list | grep xxxx #查看列表

    

    好!就是酱紫!时间你自己设置就好!我比较喜欢60s执行一次,妥妥的!

 

 

参考:

代码:https://github.com/niezw/crontab_to_clear_mac_arm

具体关于launchctl的其他操作,可以看看:https://my.oschina.net/shede333/blog/470377

sudo不需要密码:http://www.examw.com/os/windows/133193/

最新文章地址:https://blog.niezw.com/post/5b263039.html



© 著作权归作者所有

共有 人打赏支持
康州牧码人
粉丝 6
博文 24
码字总数 11051
作品 0
深圳
程序员
私信 提问
客房管理单页增加客房日志和租约

增加TAB方式显示 客房信息 物业信息 租约 客房日志 租约详情如下 合同编号 合同状态 销售 起租日期 退租日期 租约 租金 付款方式 客房日志详情如下 2014.1.1 客房创建 操作人:xxxx 2014.1.2...

leonguo
2015/03/23
5
0
不管会不会,我是这样在mac上n次安装与卸载mysql的

咬咬牙,坚持就会成为习惯 最近公司安排任务去研究unity ar ,这对于一心在web开发,特别是前端技术的我,可以说带来了不少困扰和情绪上的变动。可是当我静下心来想想,梦想是梦想,实际是实...

ziven先生
2017/03/30
0
0
Oracle下定时删除归档日志脚本

一、报错信息 前几天网站突然访问不了,并且报了如下错误: ora-27101: shared memory realm does not exist ora-01034: oracle not available 11g ORA-24324: service handle not initiali......

M四月天
2017/12/06
0
0
Android 异步编程

文章作者:朱鸿,淘宝资深架构师 原文出处:http://hugozhu.myalert.info/2014/06/29/46-async-android.html Android的线程和内存模型 Android操作系统在boot后,会启动一个Zygote(受精卵)进...

鉴客
2014/07/01
1K
1
优化Linux系统资源和加快启动速度的方法

下面是一些优化系统资源和加快启动速度的途径 编辑/etc/inittab文件 大部分Linux的发行套件都建立六个虚拟控制台,如果你的内存资源比较紧张,而且使用一个已经足够,可以编辑/etc/inittab文...

范堡
2009/05/07
738
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部