メモリが解放されない?

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. Anonymous
    2016-02-19T05:03:29+00:00

    murano さん、こんにちは。

    私も最近Window8.1(64bit)のアプリケーション開発していて

    連続稼働確認にて同じ問題を抱えていた所、こちらのサイトを拝見したので投稿します。

    (古い投稿なので、もう解決済みかもしれませんが・・)

    更新プログラムKB3048778を適用すると、taskhostex.exeのCommited Byte の上昇はなくなりました。

    修正内容からexplorer.exeのリーク改善を期待して適用したのですが、taskhostex.exeが改善されました。

    explorer.exeは依然として改善されませんが、私のアプリケーション起動中はデスクトップおよび

    タスクバーの表示不要なので、アプリ起動時はexplorer.exe終了、終了時に起動という対応で

    連続稼働が可能になりました。

    上記対応前は、いずれ仮想メモリの上限まで上昇してCommited Byte In Use が100%と

    なった時点でアプリケーションがメモリ不足でダウンしてました。

    以上、参考までにご報告します。

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

    0 件のコメント コメントはありません
  2. 削除済み

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


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

  3. Anonymous
    2015-05-27T14:07:34+00:00

    そこまでわかっていらっしゃるのならWindowsがどうしてメモリ解放が下手なのかとか、x86ではメモリアドレスに制限があったのはどうしてかなど根本から説明してはどうでしょうか?

    私はMSコミュニティーでは存外によくある話と考えているのですが、専門用語を使わずに平明な言葉で説明し直すのはとても大変な気がします。基本的には質問者の方が「納得できる」ことがが一義のような気がします。

    自分などは回答者としてとても足りないところがありますので回答ができなくなってしまいます…。

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

    0 件のコメント コメントはありません
  4. 削除済み

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


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

  5. 削除済み

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


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