我常常在使用Mac一段时间后Mac会出现卡顿的问题。 症状轻顶多是打字和选字的时候出现卡顿,严重的时候就连在切换页面或是应用程序时会出现需要loading很长时间的情形,如果你也碰到这类的问题,可以试试下面介绍的解决方法。
造成卡顿的可能主要原因是中文输入法的bug造成的,而且卡顿的灾情在繁中和简中输入法都有出现。
这个原因主要是输入法开启后会累积暂存内存长时间累积后没有被释放所以造成系统卡顿。 麻烦的是在活动监视器(activity monitor)中没法直接看出来实际占有的内存容量, 所以会出现卡顿时打开活动监视器但是发现内存尚未用满的情况。
解决的方法也是很直觉的把输入法的任务给终止就可以了。 终止之后输入法会自动重新启动,所以不用担心中之后会出现无法使用输入法的情况。
解决步骤
1.开启活动监视器( cmd+空白键 -> 活动监视器(activity monitor) )
2.找到“繁体中文输入法(Traditional Chinese Input Method)” (search: input)

3.强制结束(上方❌或是点两下进去应用程序会有结束的选项)

或是
1.启用终端(cmd + 空格键 -> terminal)
2.复制以下指令贴上后按enter执行
繁中:
pgrep -f "/System/Library/Input Methods/TCIM.app/Contents/PlugIn" | xargs kill -HUP
简中 :
pgrep -f "/System/Library/Input Methods/SCIM.app/Contents/PlugIn" | xargs kill -HUP
当碰到卡顿时依照上述的部步骤强制结束输入法后,问题应该会顺利解决。 不过当卡顿情形严重的时候,连开启活动监视器可能都要等上一两分钟,想要尽快强制结束输入法的方式可以利用macOS 内置的antomator功能来撰写一个应用程序来执行这个指令。
撰写应用程序步骤
- 打开automator( cmd+空键 -> automator )

2.选择应用程序(Application)

3.在左边的功能列表里找到Run Shell Script(可以善用上方搜寻功能),点两下即可添加

4.将shell script的内容,改成强制结束输入法的指令如下(和本文前面提到的指令相同)
pgrep -f "/System/Library/Input Methods/TCIM.app/Contents/PlugIn" | xargs kill -HUP
如果是简中输入法的用户将指令里的 TCIM.app 改成 SCIM.app 即可
5.在左边的功能列表里找Run Apple Script一样点两下加入到脚本内

6.将Apple Script的内容改成以下的代码
tell current application
delay 2
set quitapp to "untitled"
tell application quitapp to quit
return "done"
end tell
set quit app to “untitled”这行的untitled 可以改成想显示的应用程序名称
例如:
tell current application
delay 2
set quitapp to "輸入法必須死"
tell application quitapp to quit
return "done"
end tell
7.接下来就是储存这个写好的应用程序
文件(File)->储存(Save) 路径放应用程序(Applications)文件夹的路径就行了
注意如果在上一个步骤修改了应用程序的名称 这一个步骤也要改同样的名称

8.接下来在应用程序内就可以看得到了,点击这个应用程序就会执行终止输入法的指令。

以上到这边就完成了,后续碰到卡顿可以快速的点击应用程序来解决。
如果不喜欢预设的机器人图案的话可以再参考以下的方式修改显示的图片
1.先复制(cmd + C)喜欢的图片(要点开图片进入preview后再复制)
2.在应用程序(Application 文件夹中找到刚才创建的app) -> 右键 -> get info

3.点选icon后贴上(cmd + V)刚才复制的图片就顺利完成了


心得:
如果有使用其他自定义app的朋友(e.g. Bettertouch tool)可以用快捷指令来执行应用程序。 在参考文章中也有网友使用corntab来自动化两个小时执行一次终止输入法的指令,虽然这个解法可以确保卡顿不发生,不过这样背景会多一个执行绪一直在跑所以个人不偏好这个解法。
这个卡顿的问题真的困扰了我很久,每次都是要靠重新开机来解决问题。 而且这个不定时炸弹真的会让人很担心在赶作业、视频上课、面试等重要时刻突然发生。 直到找到以上这些网络文章才算是解决了这个问题。 如果你也有碰到这样的问题而且让你感到头痛的话,可以试试看吃点止痛药和这次介绍的方法来解决问题。 因为我习惯用英文的界面,所以如果里面一些名词有翻译错误的话欢迎留言我再将内容修正。