none
キーを押したままにメモリー使用量が増えていく RRS feed

  • 質問

  • using
     System.Windows.Forms;

    namespace WindowsFormsApplication2
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    e.Handled = true ;
    }
    }
    }

    以上のようなコードを書き、デバックモードで実行します

    その後、適当なキーを押し続けると、タスクマネージャーのプライベートワーキングセットが際限なく増えていきます

    これを回避することはできないのでしょうか?

    (OS:Windows7 x64 フレームワーク:.NET Freamwork 4.0 ClientProfile)

    追記

    1分間適当なキーを押し続けたところ、プライベートワーキングセットの値が7508KBから8248KBまで増えました

     

    • 編集済み jbh03215 2011年2月26日 6:09 いくつか漏れがあったので
    2011年2月25日 16:18

回答

  • 実はコードを書かなくても、デザイナーでキーを押した時のイベントを追加するだけでもなります

    イベントすらない状態でも発生すると思います。

    1分間適当なキーを押し続けたところ、メモリー使用量の値が7508KBから8248KBまで増えました

    1MB 弱増え続けたところでどうってことないと思っていますが、なぜ気にされているのでしょうか?
    これが数百 MB も増えて、開放されないなら問題になると思いますが、一時的にメモリが増え続けるぐらいは許容範囲に見えます。
    おそらくは、キー押下で一時オブジェクトが生成されて回収されていないだけだと思いますが。

    .NET メモリ管理周りについては以下の記事も参考にしてください。
    http://msdn.microsoft.com/ja-jp/library/bb985010.aspx
    http://msdn.microsoft.com/ja-jp/library/dd297765.aspx


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク 山本春海 2011年3月11日 7:39
    2011年2月27日 6:06
    モデレータ

すべての返信

  • 単純に Windows フォームアプリケーションを新規に作ってデバッグ実行するだけで再現しませんか?
    (コードを書かなくても)

    ところで、「際限なく増えていく」と書かれていますが、どのくらいまで増えました?
    また、どの列の数字を見ていますか?


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年2月26日 2:37
    モデレータ
  • 実はコードを書かなくても、デザイナーでキーを押した時のイベントを追加するだけでもなります

    1分間適当なキーを押し続けたところ、メモリー使用量の値が7508KBから8248KBまで増えました

    見ている個所はプロセスタブのメモリー使用量(プライベートワーキングセット)のところです

     

    2011年2月27日 3:44
  • 実はコードを書かなくても、デザイナーでキーを押した時のイベントを追加するだけでもなります

    イベントすらない状態でも発生すると思います。

    1分間適当なキーを押し続けたところ、メモリー使用量の値が7508KBから8248KBまで増えました

    1MB 弱増え続けたところでどうってことないと思っていますが、なぜ気にされているのでしょうか?
    これが数百 MB も増えて、開放されないなら問題になると思いますが、一時的にメモリが増え続けるぐらいは許容範囲に見えます。
    おそらくは、キー押下で一時オブジェクトが生成されて回収されていないだけだと思いますが。

    .NET メモリ管理周りについては以下の記事も参考にしてください。
    http://msdn.microsoft.com/ja-jp/library/bb985010.aspx
    http://msdn.microsoft.com/ja-jp/library/dd297765.aspx


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク 山本春海 2011年3月11日 7:39
    2011年2月27日 6:06
    モデレータ
  • 返信ありがとうございます

    個人的には気になるほうなのですが、仕様なのですね

    特に支障もないので、あきらめることにします

    2011年3月7日 14:59