メモリが解放されない?

Anonymous
2013-10-15T16:34:20+00:00

Windows 8に固有の問題かどうかは分かりませんが、教えてください。

基本的にスリープや休止状態を使いシャットダウンはなるべくしないようにして使っているのですが、そうやって何日も使っているとアプリケーションが起動できなくなったり、起動してもダイアログやメニュが正しく表示されなくなったりして困っています。

そういうときにタスクマネージャで見てみると、メモリタブのメモリのコミット済みが異常に大きい値になっています。メモリが足りなくなっているのが、アプリケーションが起動できなくなっている理由ではないかと考えています。Windowsを再起動した直後は、こんなにコミット済みメモリは多くないです。せいぜい2.xGBか3.xGB程度なのですが、数日経過するとウィンドウアプリをすべて閉じてもコミット済みは7.4/8.6GBとかになっています。

もう少し調べてみると、どうも taskhostex.exe と explorer.exeの2つのプロセスがかなりのメモリを「コミット済み」にしていることが分かりました。試しにtaskhostex.exeをタスクマネージャから強制終了するとコミット済みメモリが2~3GBほど、explorerを強制終了すると1~1.5GBほど減ります。これらのプロセスが、メモリを大量に消費しているか、もしかしてメモリを解放しないままになっているのでしょうか?強制終了ではなく、これらのプロセスが使用するメモリ量を制限するか、安全に解放させる方法はありませんか?

また、ProcessExplorerを使用してtaskhostex.exeが提供しているタスクを調べてみると、Microsoft PlaySoundService Class/MsCtfMonitor Task handler/Wininet Cache task objectの3つの機能を提供しているようですが、このいずれかに問題があるのでしょうか?

ちなみにWindows ストアアプリは、まったく使用していません。使っているのは普通のデスクトップアプリばかりです。

この現象はメーカの違う2つのPCで確認しているので、固有の問題というわけではないと考えています。何か原因をご存知でしたら、教えていただきたいと思います。

よろしくお願いします。

(追記)

2台のPCで確認していますが、一方はWindows 8 64bitで、もう一方はWindows 8 Pro 64bitです。

搭載メモリはどちらも8GBです。

よろしくお願いします。

家庭向け Windows | 以前の Windows バージョン | パフォーマンスとシステムの失敗

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

61 件の回答

並べ替え方法: 新しい順
  1. 削除済み

    この回答は当社の行動規範に違反したため削除されました。 アクションを実行する前にこの回答を手動で報告したか、自動検出機能により特定しました。 詳細については、当社の行動規範を参照してください。


    コメントはオフになっています。 詳細情報

  2. 削除済み

    この回答は当社の行動規範に違反したため削除されました。 アクションを実行する前にこの回答を手動で報告したか、自動検出機能により特定しました。 詳細については、当社の行動規範を参照してください。


    コメントはオフになっています。 詳細情報

  3. Anonymous
    2015-02-09T13:39:14+00:00

    > そりゃ休止状態を使えば使うほどコミットメモリは増加する思う、既知の常識。

    すみません。これが常識だということは初めて聞きました。「常識」=「説明するまでもない」ということかもしれませんが、常識であればどこか他でもそういう書き込みなり情報があるはずだと思います。どこか一つでもよいので例示していただけませんか?

    (自分も含めて)いろいろな人がいますので、あまり考えすぎずに(相変わらず)「Windowsは(環境によっては)メモリの使い方がダメダメなOSなんだということは既知の問題です」ぐらいに捉えておくといいのではないですかね。

    Linuxなどをみてもx86のOSだからメモリは4GB弱しか使用できないということではありませんし、WindowsというOSのメモリマネージマントに根本的な問題があるのかもしれませんね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2015-02-09T13:12:56+00:00

    なかなか解決しないですね。

    WindowsUpdateでいつか解決するかなと思ってたんですが・・・。

    VMMapを使った結果もmuranoさんと同じような結果でした。

    explorerを調べると5GBくらいCommitedになってました。

    サイズ順に並べると50MB~1MBのものが大量にありました。

    Address欄の一番右の項目を見ても内容がバラバラなので

    何が問題なのか一般人には推測することも難しかったです。

    Windows10の開発のほうが進んでいるようなので、

    もうWindows8系は諦めたほうが良いんでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2015-02-09T12:56:29+00:00

    タスクバー上やタスクマネージャー上アプリのカテゴリー上には無いが

    裏で依然プログラムが動いていて、それがコミットしているというケースが結構あります。

    IE等、全てのウインドウを閉じたのに何故か残っている・・・等。

    僕の使い方は結構ハードな使い方をしていて、ウインドウを数十多重にあげることが多いせいか

    余計にそのような事がおきるのですが、(しかもIEはウインドウごと敢えて別プロセスで実行)

    腹が立ったためにそのアプリケーションを一度全部とじても大丈夫!という状態になった場合、

    管理者モードで起動したコマンドプロンプト上で "taskkill"  コマンドにて強制的にぶった切って

    解放するようになりました。

    構文

     taskkill /f /t /im プログラムのファイル名

    /f : プロセスの強制終了指定

    /t : ぶら下がっている子プロセスまで終了対象とする <これが無いと残骸が残る事があります。

    /im : プログラムのファイル名を指定対象とする

    面倒なので個人的にブラウザ(IE)に関しては(ウインドウが開いている状態でも)

    バッチファイルを作って終了させてます。

    "taskkill /f /t /im iexplore.exe"

    特定のウインドウだけの終了(メモリー解放)の場合はプロセスIDが探せる場合であれば

    /im の代わりに /pid プロセスID に書き換えればそのウインドウと

    /t ならぶら下がっているプロセスも解放してくれます。

    (が、残したいウインドウがぶら下がっていない事の確認は必要)

    ただし /t で  Explorer.exe  をぶった切る場合は殆どのアプリケーションが

    Explorer にぶら下がって動作しているので、共倒れ(道連れ)終了させてしまいますので注意が必要です。

    差支えないようでしたらお試し下さい。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません