Apple の脅威の通知と金銭目当てのスパイウェアへの対策について

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

OS-X のメモリー管理と”現在非使用中”に付いて

アクティビティモニタでシステムメモリを見ると 固定中/現在使用中/現在非使用中/空きに区分されています.この”現在非使用中”は何者なんでしょうか?
”空き”はかなりはっきりしていてこれか少なく成るとVMのスワップがはじまりパフォーマンスが一気に低下する...納得です!
あるMac本には”OS−Xではメモリのフレグメンテーションは発生しないのでそのためにアプリケーションがメモリ不足で起動出来なく成る事は無い”的な事が書いてありました.確かにその様ですが,アプリケーションの起動/終了を繰り返していると,例の”現在非使用中”が増えてゆき結果パフォーマンス低下に成ってしまう気がするのですが??
”現在非使用中”とはアプリケーションが正しく解放しなかったメモリ・・では無いと思うのですが..
知らなくても使用上一向に差し支えナインんですが,iMovie や関連のファイル変換ソフトを使っていると段々増えて行く”青”が憎たらしくて!
よろしくお願いします

投稿日 2008/02/02 14:04

返信: 10

2008/02/03 06:11 Community User への返信

Mac OS X 10.5.1 のアクティビティモニタのヘルプには、下の様に書かれています。
[システムメモリの使用状況を表示する]
「固定中」:ディスクにキャッシュできず、RAM 内に置いておく必要のあるメモリの情報が表示されます。その容量は、使用しているアプリケーションによって異なります。
「現在使用中」:現在 RAM 内にあり、使用中であるメモリの情報が表示されます。
「現在非使用中」:現在使用されていないため、ディスクにキャッシュされたメモリの情報が表示されます。使用されていない情報は、別のアプリケーションがその領域を必要とするまでは RAM 内に残ります。これらの情報を RAM 内に残すことによって、ユーザ(またはコンピュータのクライアント)が後でその情報をもう一度使用する場合に、すばやくアクセスすることができます。
「確保中」:プロセスによって使用されているので、すぐに使用できないメモリの情報です。
「空き」:使用されていないので、すぐに使用できるメモリの情報です。

2008/02/03 14:50 Community User への返信

ぽん太さん 有り難うございます!以前にもお世話になりましたか?
知らなくても使えるし,知った所でどうしようも無さそうなんですが..
>「固定中」…
>「現在使用中」…
>「空き」…
はその通りで理解出来るんですが
>「現在非使用中」:現在使用されていないため、ディスクにキャッシュされたメモリの情報が表示 …ユーザ(またはコンピュータのクライアント)が後でその情報をもう一度使用する場合に、すばやくアクセスすることができます。
← ディスクにキャッシュした内容をメインメモリ上にも残しておき再度アクセスする時には直接メモリからアクセスする事で高速化を図っている…という意味合いでしょうか?ならば想像通りです.
>使用されていない情報は、別のアプリケーションがその領域を必要とするまでは RAM 内に残ります。
←誰かがメモリを要求すると「空き」を食いつぶし次にVMへ行く様で VMの前に「現在非使用中」領域を使用する訳ではない様に見えます…その辺りはどうなんでしょう?
「空き」が足りなく成る都度「現在非使用中」領域をクリアするため再起動しています.もっと賢い方法が有ると嬉しいんですが..
新世代MacはメモリもHDも高速化してVMも軽いんでしょうね!
とりとめの無い質問で済みません…

2008/02/03 23:52 Community User への返信

 余談ですが、
>>新世代MacはメモリもHDも高速化してVMも軽いんでしょうね!
 メモリとHDDの速度差は如何ともし難いので、VMを頻繁に使用するようになれば、
レスポンスの低下は避けられないです。

2008/02/04 00:13 Community User への返信

> ←誰かがメモリを要求すると「空き」を食いつぶし次にVMへ行く様で VMの前に「現在非使用中」領域を使用する訳ではない様に見えます
実際の動作を詳しくは知りませんが、これは「現在非使用中」から使用されるはずです。
非使用中の領域は壊されるのではなくて、スワップに回されます(スワップに回す方がいいか、壊してしまう方がいいかは、複雑な計算している可能性があります)。このためスワップは発生しますが、とにかくすぐ必要な部分は実メモリに割り当てられるので、スワップが発生すること自体が即パーフォマンスの低下にはならないはずです。
実際、スワップが発生していても、それほど大きくなければ、パーフォマンスはそれほど低下してないように思いますが、いかがでしょうか。
>「空き」が足りなく成る都度「現在非使用中」領域をクリアするため再起動しています
なのでこれほど神経質になる必要はないように思いますが。
> もっと賢い方法が有ると嬉しいんですが..
少しぐらいのスワップなら、気にせずに使う、のでいいと思いますが。気になるほどパーフォマンスが低下するなら、メモリが絶対的に足りなさすぎるのではないかと思います。映像レンダリングによくお使いということだと、インテルマックはとても速いですし、機種を変える方がいいと思います。

2008/02/04 00:45 Community User への返信

>> ←誰かがメモリを要求すると「空き」を食いつぶし次にVMへ行く様で VMの前に「現在非使用中」領域を使用する訳ではない様に見えます
(はにさん)> 実際の動作を詳しくは知りませんが、これは「現在非使用中」から使用されるはずです。
理想からいえばそうなんですが、昨今大量のメモリーを安価に積める状況でちょっと曖昧な感じになっているようなフシがあるようです。壊すというか解放と言った方が良いかと思いますので解放と書きますが、現在非使用は日本語訳だとピンとこないですけれど使用中がActive、非使用中がInactiveです。
>> ディスクにキャッシュした内容をメインメモリ上にも残しておき再度アクセスする時には直接メモリからアクセスする事で高速化を図っている…
良く言えばそうなんですが、悪く言えば使うか使わないかわからないのに解放せずにとっておいてある、とも言えます。それと(むかしからこの手の問題はあるのですが)行儀の悪いアプリケーションだとあれもこれもととっておいて、たとえアプリケーションを終了しても解放しないモノもあるようです。 そーすると別なアプリケーションからメモリーの要求があったときには「空き」から割当、それでも足りない場合にInactiveをまわす、という状況も良くみられます。こうなると使うか使わないかわからないのにとっておいてある、というより、残骸でしょうか。。。
とまぁ書きましたが、はにさんも書かれた通り理屈はそうなんですが、実際には大量にメモリーを積んであればあまり動作に支障が無いとも言えます。残骸がいっぱいあるようならできれば積極的に解放した方が使う人の気持ちがいいってくらいでしょうか。
>>「空き」が足りなく成る都度「現在非使用中」領域をクリアするため再起動しています
はにさんと同じくそんなに神経質になる必要はないと思います。どうしても必要ならシェアウェアでメモリー最適化ユーティリティも探せば出ていますし、実はなんとディスクユーティリティーのアクセス権の修復をするとなぜかInactiveが解放されるという話もあります。確かに減りますね(^^

2008/02/04 01:21 Community User への返信

# ちょっと補足:
> 行儀の悪いアプリケーションだとあれもこれもととっておいてたとえアプリケーションを終了しても解放しない
ちょくちょく使われる類いのアプリケーションの場合等、次回起動時により早く起動できるように、とも言えます。使い方とか、どっちサイドでみるかによって言葉はかわり(行儀が悪い/敢えて残す)ます。
# ま、結局使い方じゃぁないですかね。というかメモリーがいっぱいあればやっぱり気にするようなことでもないかな、今時のHardwareスペックだと。

2008/02/04 02:08 Community User への返信

>メモリーがいっぱいあれば
一般ユーザとしてはこれで十分かと。
メモリ管理のアルゴリズム(と実際の方法)を知りたければ、コンピュータサイエンスの論文を参照したり、使用されているメモリコントローラやCPUの動作を勉強するとか、アセンブリレベルでプログラミングを勉強するとか。
但し、知ったところで、一般ユーザができることは限られます。メモリを最大限に積む、HDDを高速なものに、パソコンを再起動、又は無視。
私は気にしたことないので、無視です。チューニングできたとしても微差ですから。

2008/02/04 02:14 Community User への返信

> > 行儀の悪いアプリケーションだとあれもこれもととっておいてたとえアプリケーションを終了しても解放しない
> ちょくちょく使われる類いのアプリケーションの場合等、次回起動時により早く起動できるように、とも言えます。
そんなことはないです。アプリを終了すればそのアプリが使っていたメモリーは開放されます。もし開放されないとしたら、それは、かなり悪質な(アプリの)バグです。ま、アクティビティモニタで、「空き」とは表示されないかもしれませんが(なので、隣接する部分が他のアプリなどで使われていれば、メモリのフラグメンテーションは起こるかもしれません)。アプリは一旦終了すれば、次に起動したときに、(たとえバグでも)、前に使っていたメモリが使われるということもあり得ない(不可能)です。もし、アプリが強引にそういうことをやれば、カーネルパニックになる確率が大変高いです。
アプリが一旦使ったメモリを、用済みになっても開放しないのは、アプリのメモリリークでバグです。でも、こういうアプリだと、すぐ異常終了してしまうか、カーネルパニックになってしまうと思います。アプリが終了してないなら、OS はそのアプリが開放した領域を非使用中としてそのまま置くかもしれませんけど。
メモリ管理はパーフォマンスに密接に関係しますから、OS設計の肝です。ユーザが勝手にいじるような部分はありません。

2008/02/04 02:40 Community User への返信

> そんなことはないです。アプリを終了すればそのアプリが使っていたメモリーは開放されます。もし開放されないとしたら、それは、かなり悪質な(アプリの)バグです。
あ、すみません、言葉が足りませんでした。もちろん、はにさんのおっしゃる通りです。次回起動の為に何らかの極小プロセスを残しておくようなやつの場合、と限定すべきでした。先の書き方では伝わるわけないどころか・・・ですね。ご指摘感謝です。

2008/02/23 05:24 Community User への返信

ぽん太さん、木藤さん、はにさん、usadii3さん、abcdefgさん…こんなに沢山のRes頂いて有り難うございます.何処へResつけたら良いのか分らないので取り敢えず私のオリジナルにつけておきます.
はにさん
>気になるほどパーフォマンスが低下するなら、メモリが絶対的に足りなさすぎるのでは
…と思われますが…
>インテルマックはとても速いですし、機種を変える方がいいと思います。
←ぜひぜひ欲しいです!!でもあくまで”遊び”の範囲で…予算が…
abcdefgさん
>メモリーがいっぱいあれば 一般ユーザとしてはこれで十分かと。
>メモリ管理のアルゴリズム(と実際の方法)を知りたければ、コンピュータサイエンスの論文を参照したり、使用されているメモリコントローラやCPUの動作を勉強するとか、アセンブリレベルでプログラミングを勉強するとか。
>但し、知ったところで、一般ユーザができることは限られます。
←承知はしていますが,どうしても腑に落ちない部分が有って…
usadii3さん
>はにさんも書かれた通り理屈はそうなんですが…残骸がいっぱいあるようならできれば積極的に解放した方が使う人の気持ちがいいってくらいでしょうか。
←言ってしまえばその通りです!!
>どうしても必要ならシェアウェアでメモリー最適化ユーティリティも
←我慢出来なく成ったら探してみます!
>実はなんとディスクユーティリティーのアクセス権の修復をするとなぜかInactiveが解放されるという話もあります。確かに減りますね
←やってみました!Inactiveは弱冠解放されましたが、再起動より時間かかかりました…定期的に行うと早く出来るのでしょうか?
余談 無関係かも知れませんが,アクセス権の修復を行ってから iPhoto の起動が大層速く成りました!それまで Mac 起動後初めて iPhoto を起動した場合ライブラリの読み込みにエラく時間が掛かっていました.いったん閉じて再度開くとその場合はすんなり開くので,”何かがキャッシュされている!”と思い込んでいました.
そもそも”アクセス権の修復”が何者かも知らずにやっています.
コンピュータの進化が空恐ろしい…
ちなみに私はM6809のアセンブラで進化が止まっています.

OS-X のメモリー管理と”現在非使用中”に付いて

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。