以前に書いたメモリ解放スクリプトを少し改良しました。
#!/bin/sh INACTIVE_THRESHOLD=8192 FREE_THRESHOLD=1024 VM_STAT=$(vm_stat) FREE=$(echo "$VM_STAT" | awk '/Pages free/ {print $3}' | tr -d '.') ACTIVE=$(echo "$VM_STAT" | awk '/Pages active/ {print $3}' | tr -d '.') INACTIVE=$(echo "$VM_STAT" | awk '/Pages inactive/ {print $3}' | tr -d '.') SPECULATIVE=$(echo "$VM_STAT" | awk '/Pages speculative/ {print $3}' | tr -d '.') WIRED=$(echo "$VM_STAT" | awk '/Pages wired down/ {print $4}' | tr -d '.') INACTIVE=$(expr $INACTIVE / 256) FREE=$(expr \( $SPECULATIVE + $FREE \) / 256) if [ $INACTIVE -gt $INACTIVE_THRESHOLD ] || [ $FREE -le $FREE_THRESHOLD ]; then #purge du -sx / >& /dev/null & sleep 15 && kill $! >/dev/null 2>&1 fi
以前はINACTIVEだけ監視してましたが、空きメモリも監視するようにしました。
これでMacbook Airでも戦えるはず……
サンプルだとINACTIVEが8192MB以上または空きメモリが1024MB以下になるとメモリ解放を試みます。