お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-06-19 20:42:22

BrainDeeper
メンバ
登録日: 2009-06-18

ubuntuにMemory Cleanerは不要なのか?

Windows Usersの私は常駐ソフトとして[ Bemem or MemoryClener..etc ]を使っていたがubuntuのメニューバー>
アプリケーション>追加と削除>全てのアプリ〜で検索してinstallしようと試みたがMemory Checkは有ったが
memory Cleanerは無く、cleanerで検索してもWeb Cleanerしか無かった!
そこで思ったのだが、ubuntuには必要無いのか?いやそんな馬鹿な?と思い直し質問した。
不必要なら何故不要なのか?理由を知りたい!
必要ならば何と言う名前のアプリなのか?、何処で入手可能なのか?教えて下さい。お願いします。

オフライン

 

#2 2009-06-19 20:47:17

hmatsue
アドバイザ
登録日: 2009-03-10

Re: ubuntuにMemory Cleanerは不要なのか?

まともなOSにメモリクリーナー的なソフトは不要と考えます。
例えアプリケーションがメモリリークをしたとしても、アプリケーション終了後にOSが回収できればよいのです。
プログラミングの知識はあまりないのですが、逆に今時のOSで、まともに働くメモリクリーナーって存在し得ない気が
するのですが、どうやって動いているんでしょうね。

オフライン

 

#3 2009-06-19 21:02:13

BrainDeeper
メンバ
登録日: 2009-06-18

Re: ubuntuにMemory Cleanerは不要なのか?

hmatsue様へ
回答頂き有難う。
貴方の回答内容で1つ気になる事があります。それは
「アプリケーション終了後にOSが回収できればよい〜」と有るが、複数のアプリを起動させている場合、しかも
長時間だったらいくら優れたOSでもアプリが沢山メモリーを食っていたら次第に動作は重く鈍くなるのではないのか?
Windows UserでLinux初心者の私だから無知なのかもしれないがそう思った。
だから複数のアプリが起動中でも不要なMemoryをCleaningにて容量をふやしてあげれば少しは安定してアプリも
動作出来るのではないか!?
だからmemory Cleaner Aplication Sofrwareが有るのならばInstallしておきたいと思った次第です。

オフライン

 

#4 2009-06-19 21:29:30

hmatsue
アドバイザ
登録日: 2009-03-10

Re: ubuntuにMemory Cleanerは不要なのか?

複数のアプリを起動させている場合、しかも
長時間だったらいくら優れたOSでもアプリが沢山メモリーを食っていたら次第に動作は重く鈍くなるのではないのか?

これはそのとおりだと思います。これはLinuxやWindowsに限ったことではないです。
普通、メモリはOSによって管理され、アプリケーションの実行時に必要な分量のメモリがそのプロセスに割り当てられます。
プログラムがOSにメモリを返さなければ、そのプロセスが生きている限りメモリは他のプロセスからは利用できなくなります。

問題はメモリクリーンが意味するものはなにかということです。
他のプロセスが使用中のメモリを横取りできるプロセスが存在できるわけでもなし、できることと言えばせいぜい多量のメモリを
OSに要求し、他のプロセスのメモリを一時的にSwapに吐き出させ、無理矢理確保したメモリをOSに返すことぐらいではないでしょうか。
一方、メモリをSwapに吐き出させたプロセスも終了したわけではないので、また必要になれば実メモリとSwapの交換する必要がでてきます。
このようなことは必要に応じてOSがやればよいことで、アプリケーションでどうこうしようという問題ではないと考えます。

オフライン

 

#5 2009-06-19 22:08:28

weyk
メンバ
登録日: 2009-04-03

Re: ubuntuにMemory Cleanerは不要なのか?

空きメモリというのは、「電力を消費しているだけで仕事していない部分」 と考えられるので、無理にでも多くあけておこうとするのは、あまり意味がない と考えています。OSがOS自身に合うように管理しています(なので、OS自身もディスクキャッシュとしてどんどん使う・・・・とかなってませんでしたっけ?)
が、まったくの無駄かというと、新しいプログラムを起動する といった、「人間が意識しやすい部分の時間」が短くなる可能性があるために、体感速度があがる可能性もあります(その分、もともと処理し続けていたほうが割りを食らって、より長く時間が延びる可能性がありますが、おそらく人間は実行し続けているものが全体で伸びても気がつきません)

なお、MS-Windowsの場合、メモリよりもリソースのほうが問題になることが多いので、じつはそっちを操作するツールに対して(パソコン知らなくてもより判り易い)メモリ関連のツールのように名前をつけていることがあるので注意が必要です。
# 昔の64kの壁に比べると広くはなりましたが・・・IEでタブをいっぱい開いたりするとたまにハンドル不足(これもリソース)を起こしますね・・・

オフライン

 

#6 2009-06-19 22:45:48

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: ubuntuにMemory Cleanerは不要なのか?

こんばんは

複数のアプリが起動中でも不要なMemoryをCleaningにて容量をふやしてあげれば少しは安定してアプリも動作出来るのではないか!?

 原則はメモリーを必要とするプログラムはsystemにメモリーを要求し、そして獲得、実行する。この最小の単位をタスクといいます。
1回の要求につきどのくらいのメモリーを渡すかはそのOSのメモリー管理法によって異なります。また、そのOSがどんな処理を目的に作られているかによっても異なります。例えば車のエンジン制御に使われているOSなどはスワップなどはしません。そんな時間的余裕はないのです。一方Windowsのような限定的な割り込みで、しかもその割り込みがそうタイムクリチカルではない(リアルタイムOSではない)ものはメモリー管理は別の管理法の方が結果的にアプリケーションに有利です。例えば余ったメモリーをその時点で要求するアプリにすべて預けてしまい、別のアプリがメモリー要求した時点で、前のアプリケーションが使っていないメモリーを返してもらい、再割り当てをする、3つ目のアプリが起動したら同じことを繰り返す。こんなやり方でも結構可能です。でも、起動されているタスクがたくさん待ち行列の中にあり、起動割り込みがあったとたんにメモリー要求し、獲得し、実行する、もし、次のシグナルが来るまでにこの実行過程が終わっていなければ大変なことになります。例えば何かのカウントをし損なうといったミスも起こります。
それでは、実メモリ(物理メモリ)をどのくらい入れておけばよいのか、これも動かすアプリと切り替えスピードの要求によって異なります。UnixけいのOSはリアルタイムにも対応できるよう、マルチタスクOSです。しかもマルチユーザOSといいまして、ターミナルとディスプレイをコンピュータに接続すれば1台のコンピュータがたくさんのコンピュータがあるように振る舞えます。
今時、シングルタスクのコンピュータはありえないのですが、Windowsはマルチジョブ/マルチユーザのOSではありません。ですから、それなりの管理法を使っているということです。
一方、メモリークリ-ニングというのは余っている分断化したメモリーをなるべく連続して確保しておき、次のアプリが起動したときに使わせれば実効速度が速くなるという意味でクリーニングなのです。Unix系のOSは決められた量しか割り当てませんし、タスクに対して割り当てていますので、仕事が終わってメモリーがいらなくなった時点でOSにかえすので、メモリークリーニングは原則無意味です。この話をすると60年に渡るコンピュータの発達の歴史を勉強しなければなりませんので、この辺を参考になさってください。
http://www.linux.or.jp/JF/JFdocs/The-Li … nel-4.html

急いで書きましたので乱文御容赦ください。

オフライン

 

#7 2009-06-19 23:29:02

BrainDeeper
メンバ
登録日: 2009-06-18

Re: ubuntuにMemory Cleanerは不要なのか?

funatogawa様へ
急遽の割には長文の回答頂き有難う御座います。
私は60年に渡るコンピュータの発達の歴史を勉強していないのでOSとメモリーの深い関係(詳細)は知りません。
参照URLは少し覗いて見たが長いので後日暇な時にでもゆっくり閲覧させてもらいます。
但し、少し気になったのは「原則」無意味ですと記載があっ事。
何故、絶対無意味ではないのか?原則と言う事は「例外」も有り得るのか?と次なる疑問が少し沸いた事です。

weyk様へ
貴方が言われている「MS-Windowsの場合、メモリよりもリソースのほうが問題になることが多いので、じつはそっちを操作するツールに対して(パソコン知らなくてもより判り易い)メモリ関連のツールのように名前をつけていることがあるので注意が必要です。」
に惑わされ、メモリーとリソースを混在してた部分がある様です。
WindowsXPで常駐させてたアプリのプログラムの中身なんて知る理由ないから・・・一般人は騙されても判らない!
私も考えを改めなければいけない様ですね!
ご指摘有難う!

オフライン

 

#8 2009-06-20 00:26:19

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: ubuntuにMemory Cleanerは不要なのか?

こんばんは

何故、絶対無意味ではないのか?原則と言う事は「例外」も有り得るのか?と次なる疑問が少し沸いた事です。

そうですね、Windowsのメモリ管理法からすると『分断化』の対策が必要かもしれません。プログラム(OSによって言い方が微妙ですが、私はタスク<(スレッド)<プロセス<ジョブと考えています)が必要とするメモリはどの時点で割り当てるかという問題です。Windowsはメモリーをシステム用とユーザー用途で分けて使っています。システムの方ではほぼUnixと同じ割り当て方ですが、アプリケーションに割り当てるメモリは先ほど書いたような方法です。ですからユーザー用(アプリケーションを動かす)のメモリ領域は分断化対策があればアプリが高速に動くということでしょうか。
Unixのメモリー管理は主にMMUによって行われていますが、この割り当て量(ページ)が4Kとか8Kとか割合少ない量です。ですから、考えようによっては最初から分断化されて使用されるのを前提に作られていると言えるのではないでしょうか。仮想アドレスと物理アドレスは直接関係ないのでその間を変換する仕組みがMMUです。メモリがバラバラに割り当てられて困るのはMMUのエントリポイントが有限で、しかもかなり少ないので、MMUのエントリポイントもSwapの対象になりうるということかな。つまらないことを書きましたが、Unix系のOSではメモリの分断化は「考えない」で済むので『原則無意味』と書きました。
でも、Windowsではシステムメモリとユーザーメモリの境界が固定されているということではありません。

余計混乱させてしまったのではないかと危惧しています。

オフライン

 

#9 2009-06-20 08:28:07

hmatsue
アドバイザ
登録日: 2009-03-10

Re: ubuntuにMemory Cleanerは不要なのか?

> Weykさん
> funatogawaさん
私自身のメモリ管理に対する理解も随分あいまいであったことに気づかされました。
大変参考になりました。ありがとうございます。

オフライン

 

#10 2009-06-20 11:33:57

BrainDeeper
メンバ
登録日: 2009-06-18

Re: ubuntuにMemory Cleanerは不要なのか?

funatogawa様へ
前回返事でなんだが追加回答要求したみたいな感じで終わり、それに対して丁寧にお答え下さった事にまず感謝します。
とても有難う!
しかも溜になる内容で、感激感謝X2!

オフライン

 

Board footer

Powered by FluxBB