Help us understand the problem. What is going on with this article?

OSXでメモリークリアアプリをAutomaterでさくっと作る

More than 1 year has passed since last update.

自分は色々なアプリケーションを開きながら(主にadobe製品であるが)仕事をするため、32GBのiMac 2017でもすぐにメモリがアップアップになってしまう。あまりにアップアップとなった場合には再起動するのだが、1日何度もやってると時間が勿体ないし、第一気持ちが切れてしまう。ちょっと前まではOSX用のサードパーティ製のメモリ解放アプリを使っていたのだが、たまにハングったりするので、わりと使い勝手が悪いし、最近のOSXではサードパーティのメモリクリアアプリがApp Storeから削除されているので使用できない(Webにアップしてあるものもあるが、そういうものを使うのはちょっと怖いので基本的には使わない)。
しかし、OSXのコマンドラインではメモリーパージコマンドがあり、メモリー解放アプリをAutomaterでさくっと作ってみようじゃねえかということでやってみることにした。

注意
ここに書かれている事は対価も貰ってない代わりに義務も負いませんので、質問などは軽くシカトします。
ついでにいえば、以下の作業をして不具合が出ても自己責任ということで、書いた人間は全くもって責任は負いませんので、あしからず。

メモリ解放コマンド

まずはコマンドラインでのメモリー解放方法をここに記する。
とりあえず、どこくらいメモリーを使用しているかを次のコマンドで確認する。

$ top -l 1 -s 0 | grep PhysMem
PhysMem: 17G used (2694M wired), 15G unused.

次にOSXでの解放コマンドはpurgeとなっているので、使用してみる。
ただし、次のようにsudoコマンドと併用しないと使えない。

$ sudo purge

ちょっとラグがあると思うが、無事解放されたかどうか、先ほどの使用メモリの確認コマンドを入れてみる。

$ top -l 1 -s 0 | grep PhysMem
PhysMem: 11G used (2727M wired), 21G unused.

大体、使用メモリを6Gぐらい開放出来たわけだ。
まぁコマンドラインを日常使っている人なら、これはこれでいいだろうと思うが、いちいちTerminalを開いて、メモリ解放コマンドを入れていくのもわりと面倒ではある。また、shellスクリプトを常駐させて、マークした以上にメモリを使用したらpurgeコマンドを実行するっていうのもできるにはできるが、常駐分CPUを占領させるので、あまりよろしくはない気もする。

Automaterを使ってメモリ解放アプリを作成する

いよいよAutomaterを使ってメモリ解放アプリを作成してみることにする。

Automaterでsudoコマンドを使用するためのおまじない

前処理としてAutomaterでsudoコマンドを使用するために、若干コマンドライン操作が必要となる。
これは、通常Automaterでsudoコマンドを実行できないようにApple側がフィルターをしているためで、このフィルターを取っ払う必要があるためだ。

まずは次のようなコマンドを入力する

sudo vi /etc/sudoers

viコマンドで/etc/sudoersに書きこむわけであるが、viコマンドが使えない人は・・・・まぁ、無理なのでこの時点であきらめて欲しい、ちなみに通常のテキストエディタで開く方法もあるが、あまりお奨めはしない。

次に一番最後の行に次の一文を書きこむ

Defaults visiblepw

この時、Defaultsvisiblepwの間はタブ1つ離すようにする(必ずタブを使うこと)。

最後にセーブするのだが、通常のセーブ&クローズコマンドであるwqは受け付けないので、wq!として終了する。

Automaterの設定

Automaterで新規で作成するのだが、その場合アプリケーションとして作成する。

Automator001.png

作成したら、次のように作成するのだが、まずはテキスト>指定されたテキストを取得を選び、テキストエリアに自分のパスワードを入れ、次にユーティリティ>シェルスクリプを実行を選び、sudo purgeと入れる。

Automator002.png

後はファイルメニューから書き出しをすればメモリ解放アプリケーションのできあがりである。
割と簡単にでき、ただで使えるので、費用対効果(?)も抜群だ。
また、アプリケーション形式で書き出しても、後からAutomaterで開くことができるので、万が一エラーが出た場合も検証できるだろう。

以上でメモリ解放アプリを作成したが、本来は上のメニューバーに登録して使えたらもっと利便性が上がる。しかし、現状Automaterではできない様だ。また、そこまでやろうとすると今度はXcodeを使わなければならないので、ちょっと敷居が高いというか、そんなアプリ作ったらシェアウェアにしたいところだけど、この手のアプリはApp Storeに登録できないので大して儲からんし、やるだけ無駄ではある。
とりま、現状はこれぐらいで充分ということでここにまとめたわけだが、これを見て役立つ人がいるなら、書いた本人としてはこの上ない喜びである。

JHiyama
会社社長兼編集兼ライター兼コーダーです。 基本的には技術系書籍編集業50%、ウェブコーダー50%で仕事をしています。
http://3hp.me/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした