動作が遅くなったときの対処法
– Sudo purge – ターミナル入力をAutomator.appでアプリ化
MacOSに備わっている機能を利用してメモリの開放をしてみよう!…というお話
更にその手順をAutomatorで自動化していつでも気軽に出来るようにして、メモリの開放をサクッと試せるようになります
MacOSといえば作業終了後、シャットダウンは要?不要?と話題になる事もあったようですが、Mavericks以降メモリの開放は不要…とされつつも相変わらず関連のツールを見かけられる
とはいえシンプルにメモリの開放だけを求めるのであれば、ターミナルから”sudo purge”を実行することで解消することが出来るらしい
キャッシュがクリアされることで逆効果…という意見も見受けられますが、その辺は何のキャッシュが停滞しているか?にも左右されるでしょうから、手軽にメモリを開放できるなら試さないのももったいない
というわけで、ターミナルから”sudo purge”を実行する操作をautomator.appを使ってアプリ化してみます
アプリ化する内容
Automator.appに自動化させたいのはターミナルへのコマンド入力
・”sudo purge”をタイピングしてenter
・Mac起動時のパスワードを入力
・メモリが開放される
なれている人にとっては”たったそれだけのこと…”と思われるでしょうが、普段ターミナルappを起動させてコマンド操作をしない人にとっては不慣れな操作
そこで”たったそれだけのこと…”をAutomator.appで自動化してみたいと思います
ちなみに、プログラム関連に馴染みのある方であれば”スクリプトエディタ”択一なのでしょうが、ここではプログラム初心者にも優しそうなAutomator.appで作業いたします
Automator.appの操作
まずはAutomator.appを起動
アプリケーションフォルダからAutomator.appをダブルクリック
書類の種類を選べるので、ここで”アプリケーション”をチョイス
左側のアクション一覧から”AppleScriptを実行”をドラッグ&ドロップ
ドラッグ&ドロップするとこんな風になる
挿入されたワークフローの中に記されている”(* Your script goes here *)”の場所にAppleScriptで実行させたいコマンドを記入します
ちなみに今回はコピペでいいので
do shell script “sudo purge” password “あなたのパスワード” with administrator privileges
に置き換えます
“あなたのパスワード”の部分は、お手元のMacOS搭載機の管理者パスワード(起動時に入力するPW)に書き換えるのですが、多くのサイトでもご指摘のように、無防備なアプリケーションの中に重要なパスワードがのこのこと書いてあるのは心許ない
なので、私の場合はこの部分を記入せず、メモリ解放のその都度自分で入力することにしました
幸いパスワードを記載しないだけでパスワード入力の小窓が開いてくれましたので助かりました(笑)
ワークフロー内の書き換えが完了しましたら、動作確認をします
(書き換えに不備がなければ問題ないのですが、こういう事はビビリなくらいがちょうどよかったりします)
画面右上にある実行ボタンをクリックします
Automator.app内での実行は不完全ですよ的なお知らせが表示されましたら”OK”をクリック
今回はパスワード入力の自動化をを省略していますからここで入力します
少々時間を置いて画面下部にあるログの枠にエラーメッセージが表示されなければ完成です
作成した内容をアプリケーションとして保存します
保存の際、名前の右に表示されている”.app”を確認して、任意の場所に保存して下さい
(私はアプリケーションフォルダに保存しました)
名前に表示されている拡張子が”.app”となっていない場合は、automator.app終了の操作をしてから保存しますと、うちの環境(バージョン2.8)ではフォーマットが変更できました
アプリとして保存したあとはDockにでも登録しておきますといつでもサクッとメモリ解放を行うことが出来ます
メモリ解放という操作も、そうそうしょっちゅうする作業でもないからこそ、せっかくこしらえたアプリの存在が忘却の彼方へと消え去ってしまわないよう目に付きやすいところに置いておくのがよろしいかと
メモリを開放の効果
MacOS Mavericks以降はメモリ管理の根本に修正が入っているとかでそれ以前のMacOSほどの効果は期待できないのかもしれません
そもそもうちのMacBookProちゃんのような物理的なメモリ不足(ちなみに8GBですw)は致命的な問題
だからこそ、少しでもあがいておくしかない…ともいう(笑)
ちなみに今、アクティビティモニター.appを起動してメモリの使用状況を確認してみますと…
使用済みメモリ:6.70GB
キャッシュされたファイル:1.26GB
アプリケーションメモリ:2.26GB
確保されているメモリ:2.11GB
圧縮:2.33GB
…となっています
手元のOSはMavericks以降のHighSierraですので、まずは閉じられるアプリケーション(Keynote/Crome/automator)を閉じてみます
すると…
使用済みメモリ:3.51GB(△3.19GB)
キャッシュされたファイル:1.23GB(△0.03GB)
アプリケーションメモリ:984.6MB
確保されているメモリ:1.80GB(△0.31GB)
圧縮:765.6MB
さすがは再設計されたメモリ管理といいましょうか、不要なアプリを閉じるだけでアプリケーションメモリや圧縮では単位が変わってしまうほどに効果が現れました
ちなみにその後、先程制作しましたpurgeアプリを実行してみますと…
使用済みメモリ:3.40GB(更に△0.11GB)
キャッシュされたファイル:390.5MB
アプリケーションメモリ:869.5MB(更に△115.1MB)
確保されているメモリ:1.80GB(変化なし)
圧縮:762.3MB(更に△3.3MB)
アプリを閉じただけでは微減だったキャッシュされたファイルが結構整理されました
使用済みメモリの内訳の方でも僅かながら確保されています
整理されるメモリの結果は環境や作業の状態によってまちまちなのかもしれませんが、今回の事からMavericks以降のMacOSにおいても、”sudo purge”コマンドの効果に期待しないのはもったいないと思っていいのではないでしょうか
まとめ
遅くなりましたが今回作業したMacOSはmacOS High Sierra ver 10.13.6 となっております
メモリの開放による効果が期待を下回った場合は、セーフブートやPRAMのリセットといった対処法も試してみるといいかもしれません
セーフブート
→ Mac でセーフモードを使う方法 – Apple サポート
PRAMのリセット
→ Mac で NVRAM または PRAM をリセットする – Apple サポート
その他、特殊な起動法
→ Mac の起動時のキーコンビネーション – Apple サポート
メモリの開放に限らず、セーフブートやPRAMのクリアにおいても、都合よく消したいところだけを狙って消去!とはいきません
マシン側の判断で、消せるものは消す!といった処理がされてしまう(と思われる)
キャッシュなど”一旦置いといて…”とメモリ内にわざわざ残してある内容は、再び同じ処理があった時にスムーズな処理をするために保存してあるわけです
つまりキャッシュがあるからこそのスムーズな部分もあり、そこを消してしまうことによる回り道をあえて通ってしまう…ということになってしまう
メモリの開放とは諸刃の剣となってしまう場合もある(のかも)
ただ、何かしらの不具合に見舞われているときはひとつづつ試していくしかない
そんな時、真っ先に試すべき方法が普段使い慣れないコマンドによる操作で、その都度調べて作業するよりも一度今回のように自動化しておけば次は手軽に試すことが出来る
”sudo purge”のコマンドに効果を実感できた場合には、思い切ってアプリ化による自動化もやっておくと、次に必要になった時に便利だと思います