タグ

2006年8月7日のブックマーク (5件)

  • higepon

    Share and discover what’s happening right now, anywhere in the world.

    PSV
    PSV 2006/08/07
    ひげぽんさんの英語blog
  • Rational Software's Products:PurifyPlus

  • 【C#】 usingを使え、使えったら使え (IDisposeも)

    こんな風にスコープを抜けたとき(Func()からリターンしたとき)も誰も参照しなくなったことになるのでそのうち破棄されます。 この「そのうち」っていうところに注意してください。決してすぐに破棄されるわけじゃありません。 GCはそれなりに大変な処理なので、そんなに頻繁に動きません。 それどころか、.NET FrameworkのGCは「メモリが足りなくなってきたら動く」という感じらしいです。 まぁ、これ自体は何も問題ありません(どっちにしろそのうち破棄されるんだから)。 けど、オブジェクトがメモリ以外のリソースを持っているときは問題になることがあります。 たとえば、 こんな場合です(えらく意図的ですが)。 Func()メソッドからリターンした時点でfsやsrを参照しているものは無くなりますから、そのうちGCによって破棄されます。 が、破棄されるまでは"test.txt"はオープンされたままにな

    PSV
    PSV 2006/08/07
    ガベージコレクション(GC)
  • C# ガベージコレクション

    Microsoft .NET Framework のガベージコレクション 開発環境: Visual Studio 2003 GotDotNetで、激論になりましたが、どうも自分でも納得できないところがありました。 というのは、明示的なDispose()、あるいはusingステートメントパターンが良いと言う意見がありますが、MSDNのサンプルの多くは、暗黙のGCで書かれているサンプルが多いですよね。 もし、MSがDispose(), usingステートメントをお勧めなら、MSDNのサンプルはDispose()パターン、あるいはusingステートメントパターンでかかれると思うんですよね。 それで、はたしてDispose(), usingステートメントを使うべきなのか、あるいはGCにおまかせパターンでよいのか、GDI+ の場合について検証してみました。 以下は、メモリ管理に関して、ある程度の知識

    PSV
    PSV 2006/08/07
    Microsoft .NET Framework のガベージコレクション(GC)
  • .NET TIPS ガベージ・コレクタを明示的に動作させるには? - C# VB.NET - @IT

    C++やVisual Basic 6.0の世界でプログラミングしてきた技術者が.NET Frameworkの世界に入ってきてまずおどろくのは、プログラムを実行していると、プロセスが使用するメモリ量がどんどん増えていくことである。「メモリ・リークか!?」と焦ることもあるが、これは正常な動作である。 メモリの解放忘れは典型的なバグの要因であり、メモリ解放を自動化することによって、プログラムの信頼性は向上し、プログラマーの負担も減る。自動的なメモリ解放を行う機構は、ガベージ・コレクタと呼ばれ、解放する行為をガベージ・コレクションと呼ぶ。問題は、ガベージ・コレクションがいつ行われるかであるが、これはメモリが不足してきた場合や、明示的に動作を指示された場合にのみ行われる。つまり、メモリが潤沢に余っている場合には、プロセスの使用するメモリ量が増加するのが正常な動作である。そのままメモリ不足でプログラム