タグ

.NET Frameworkに関するnevlibのブックマーク (3)

  • 【雑記】弱参照 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

    概要 ガベージ コレクションに関連して、弱参照というものがあります。 めったに使うものではありませんが、使い方・使い道を説明します。 サンプル https://github.com/ufcpp/UfcppSample/tree/master/Chapters/Resource/WeakReference 弱参照とは 「ガベージ コレクション」(以下、GC)では、「他のオブジェクトから参照されているものは生きてる、誰からも参照されていないものはもう不要」という判定方法で、 不要なオブジェクトを削除します。 逆に言うと、誰か1つでも参照を持っているオブジェクトは削除されません。 一方で、「オブジェクトを使いたいんだけども、GC 的には参照していることにしないでほしい」、 「自分以外が全員参照を手放したらその時点で削除対象にしてほしい」というような要件がまれにあります。 こういう、GC の参照探

    【雑記】弱参照 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
    nevlib
    nevlib 2015/06/11
    弱参照による弱イベント購読の方法
  • ジェネリック型制約なしに WeakDictionary を実装 - 捨てられたブログ

    パフォーマンスのために,データの生成にコストがかかるオブジェクトを辞書にキャッシュしておく,ということをよく行います。生成するオブジェクトが少ないならあまり気にする必要はないのですが,規模が大きくなるとメモリーリークの問題が出てきます。 Java には WeakHashMap のような弱い参照でキーを保持することにより,ガベージコレクションの恩恵を受けることができます。しかし .NET Framework には弱い参照を扱うクラスはおそらく存在しません。そのため,たとえば Dictionary<string, WeakReference> のような辞書を作ったりするわけですが,これは少し扱いづらいです。 検索するといくつか実装が見つかったのですが (下記),いずれもキー・値いずれにもクラス制約がついています。確かに弱い参照はクラスにしか使えないものですが,キーも値もクラスである必然性はあり

    nevlib
    nevlib 2015/06/11
    GCに配慮したDictionary。
  • .NET アプリケーションのパフォーマンスとスケーラビリティの向上 - 第 5 章 「マネージ コ ード パフォーマンスの向上」

    Recommendations on how to design and develop custom applications using the Microsoft platform Each patterns & practices offering contains a combination of written documentation and re-usable source code. Many also include a reference implementation. As the guidance is being developed it is reviewed and approved by internal Microsoft product teams and by external customers and partners. This produc

    .NET アプリケーションのパフォーマンスとスケーラビリティの向上 - 第 5 章 「マネージ コ ード パフォーマンスの向上」
    nevlib
    nevlib 2014/11/18
    .netフレームワークを使用したコーディングの細かいところのパフォーマンスチューニング。小さな気配りで、処理は爆発的に速くなる場合もある。
  • 1