こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

パソコンの重たさの「見える化」は可能か?

基本windows-XP以降のPCで、このパソコン(ネット環境も含む)重いと思った時、

気のせい、何となくじゃなく、数値化、見える化してくれるツールってないでしょうか?


「今、平常時のパフォーマンスの50%しか出てませんね。それは、このタスクが裏で足引っ張ってリソース食っているんですよ」とか指摘してくれるツールです。


タスクマネージャで、同時起動アプリ数のチェックは時々してますが、「重くなったなと思った時には、アプリ順に終わらせても余り回復しないですね。結局再起動しかないという。。。


何か、適切なアドバイスあればお願いいたします。

投稿日時 - 2011-11-12 12:45:24

QNo.7128499

困ってます

質問者が選んだベストアンサー

再起動後は動作が快適な場合は、メモリ不足でしょう。コミットチャージの最大値が物理メモリの合計値を上回っていませんか?その場合は、物理メモリを増設すると改善します。


Q/気のせい、何となくじゃなく、数値化、見える化してくれるツールってないでしょうか?

A/それがタスクマネージャです。既に回答がありますけど、パフォーマンスの50%しか出ないのではなく、上限のあるパフォーマンスの中で、使いたいソフトがどれだけのリソース(資源)を使えるかというのが重要なのです。この判断を出来るのは、タスク監視を出来るリソースモニターやタスクマネージャーとなります。そして、これの仕組みを理解し、自分で読み取る以外には方法がありません。

これは、簡単に言えば例えば夕食を作っていた。その途中に電話が掛かって、電話を取って話をしながら料理を作ると、料理が出来上がるまでの時間が、電話をしながらの状態より、遅くなるはずです。
100を最大効率にしたとすれば、電話に30とられれば、料理は感性までに30%時間が掛かるようになります。1時間で出来る料理なら1時間20分ほどかかるようになるのです。

それと同じで、コンピュータも同時に複数の演算を行います。それを、仲介して命令を細かな単位でコントロールしているのが、OSです。それを数値化したのがタスクマネージャであり、上記のような状況ならコンピュータそのものは、100%の性能を発揮しているのです。

タスクマネージャは、個別のプロセス(プログラム)に、どれだけのハンドル、スレッドがあるかを監視し、それらに対して適切なリソース(メモリ空間とCPU使用率)を割り当てます。そして、それをソフトウェアの要求に応じて、処理します。

もしも、それをタスクマネージャ以外で数値化しようとすると、どのプロセスに対して数値を出すのかがまず課題となります。質問者様が使っていると思っているソフトとは別に、後ろではウィルス対策ソフト、コアカーネル、各種自動アップデート確認ツールなどが動いているはずです。
そのどれが、どれだけのリソースを使い、100%使用率がどれほどの性能かを客観的に計るのは困難であるとともに、遅くなっていると警告する対象が、元々低速でも構わない質問者様の望むソフトではないケースも出てきます。

もう一つ問題点を書けば、こういった監視を複雑に開発すると、そのソフト自体が物理演算に大量のリソースを消費します。これは、常駐アプリが増加し、厳密に処理すればするほどウィルス対策ソフトの常駐監視など目じゃないほどに、パフォーマンスを食うことでしょう。

これは、どのようにプリエンティブマルチタスクが実行されているかを知れば分かるでしょう。
プログラムが並列して動作するコンピュータの仕組みは、WindowsなどのOSが、プロセス優先度と命令の実行優先度を監視し、それぞれのソフトにミリ秒単位で細かく命令の実行時間を指示しています。例えば、A、B、Cの3つのソフトが起動していたとしましょう。Aがフォアグラウンドで一番優先度が高いソフトだとすれば、Aは1秒間で0.5秒ほどの実行時間を与えてもらえます。
それに対して、BとCは、2つのソフトの合計で0.25秒ほどの実行時間がもらえます。そういう形で、ごく僅かなタイミングを見計らって、命令は細かく切り替え処理されています。実行できる命令の基本は、今も昔もCPUの数と同一でしかありません。即ち、SMTのないデュアルコアなら2つのプログラムを実行します。そして、その命令を実行している間は、別の命令が割り込むことはできません。
ただ、その処理切り替えの速度が、人間から見ると尋常じゃないほどに速いのがOSのタスク管理であり、CPUの性能の高さとなります。ミリ秒やマイクロ秒でどんどん処理する内容を切り替え、80や90プロセス、場合によっては200を超えるプロセスを、遅延無く行うことも出来る場合があります。

その命令を処理する時に、OS側はその実行時間や実行キューをハードウェアと協調して確認することが出来るため、CPU使用率をさほど使うことなくタスクマネージャというリソース監視ツールが提供できるのです。

もしも、ここにパフォーマンスをチェックしなさいと言う外部からのソフトを登載すると、結局はタスクマネージャーと同じ概念でOSからデータを受け取るか、または1から設計するしかありません。
どちらにしても、タスクマネージャーと同じような結果を単に文字に興すだけで、下手に詳細な監視を掛けてしまうと、監視のためにプロセスを常駐させ、さらに高精度になれば、CPUに張り付く時間が長くなります。下手をすれば、それだけでCPUコアを一つ丸ごと消費する可能性もあります。LinuxやUNIXでTOPコマンドを使うことがあれば分かりますが、リフレッシュ時間を短くしすぎると、プロセス数が多いほどTOPそのものが、リソースを沢山食うという間抜けな結果になります。

ということになるのです。
いかがでしょうか?まあ、確かに誰にでも遅いと警告してくれるソフトがあれば便利ですけど。遅いと感じるのは、文字で表示されるより、体感で感じるものです。そのため、ソフトでそういう相対評価をするのは困難です。たぶん、現時点ではお望みの結果にならないケースが多いでしょう。

投稿日時 - 2011-11-12 14:30:33

お礼

論理的な解説ありがとうございました。
思考整理してみます。

投稿日時 - 2011-11-14 23:31:09

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.4

簡潔に言います。

CPUメーターとか、Process Explorerを使用すれば視覚化可能です。

ただし、判断は人間が行うこと。
サクサク動く時と重い時の違いをツールを使用して見つけ出さなくてはならないからです。

Process Explorerというのはタスクマネージャの高機能版。
表示させる情報をカスタマイズすればタスクマネージャより遥かに便利です。

投稿日時 - 2011-11-13 12:08:11

お礼

何か可能性を感じさせてくれるツールですね!研究してみます。
ありがとうございました。

投稿日時 - 2011-11-14 23:29:51

-広告-

ANo.2

>「今、平常時のパフォーマンスの50%しか出てませんね。それは、このタスクが裏で足引っ張ってリソース食っているんですよ」とか指摘してくれるツールです。

この「パフォーマンス50%」というのは
どの状態を「パフォーマンス100%」としたときですか?

あるタスクがPCの能力占有した最高の状態を100%としての話というのなら
他のタスクから見れば、そのPCの能力を占有したタスクが足を引っ張ってるタスク
ということになりますけど。

投稿日時 - 2011-11-12 13:57:48

お礼

うーん、難しいですね。
ありがとうございました。

投稿日時 - 2011-11-14 23:32:07

ANo.1

>「今、平常時のパフォーマンスの50%しか出てませんね。それは、このタスクが裏で足引っ張ってリソース食っているんですよ」とか指摘してくれるツールです。

この考え方が間違っています。
今平常時の50%のパフォーマンスしか出ていない、というのではなく、今CPU使用率100%だから、メモリ不足でスワップが発生しているから、HDDがBUSYだから重いわけです。
どのタスクが足を引っ張っているかは、CPUの処理に関してはタスクマネージャで確認できますよね。同じくメモリも、使用量は表示可能ですよね。
どの状態を平常時とすればいいかも、ツールでは判断しようがない。
パソコン側からすれば、命令されたものを実行しているだけですから、何が重いかなんてのは、客観的な数値で見るしかできません。
重いからと言って、OS側の重要なプロセスは止められないわけですし。

往々にして重たいと感じるようになるのは、パソコンの性能不足です。
メモリ不足ならメモリを増やせば解決ですし、HDDならもっと速いものに改装する、CPUは交換は敷居が高いですから、買い替えたほうがよいということになります。

投稿日時 - 2011-11-12 13:12:29

お礼

と言う結論になりますかね。。
ありがとうございました!

投稿日時 - 2011-11-14 23:33:35

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-