プロジェクトでは、Red GateソフトウェアのAnts Profiler Proを使用しました。すべての.NET言語ベースのアプリケーションで非常にうまく機能します。  
.NETガベージコレクターは、メモリ内オブジェクトのクリーンアップにおいて(本来のとおり)非常に「安全」であることがわかりました。なぜなら、私たちが将来いつか使用するがある。これは、メモリ内で膨らんだオブジェクトの数についてより注意する必要があることを意味しました。最後に、メモリオーバーヘッドを減らしてパフォーマンスを向上させるために、すべてのデータオブジェクトを「フィールドを要求する直前に」オンデマンドで変換しました。
編集:ここでは、「オンデマンドでの膨張」の意味について詳しく説明します。データベースのオブジェクトモデルでは、親オブジェクトのプロパティを使用して子オブジェクトを公開します。たとえば、他の「詳細」または「ルックアップ」レコードを1対1で参照するレコードがある場合、次のように構成します。
class ParentObject
   Private mRelatedObject as New CRelatedObject
   public Readonly property RelatedObject() as CRelatedObject
      get
         mRelatedObject.getWithID(RelatedObjectID)
         return mRelatedObject
      end get
   end property
End class
上記のシステムでは、メモリに多数のレコードがある場合に、実際のメモリとパフォーマンスの問題が発生することがわかりました。したがって、オブジェクトが要求されたときにのみオブジェクトがインフレートされ、データベース呼び出しが必要なときにのみ行われるシステムに切り替えました。
class ParentObject
   Private mRelatedObject as CRelatedObject
   Public ReadOnly Property RelatedObject() as CRelatedObject
      Get
         If mRelatedObject is Nothing
            mRelatedObject = New CRelatedObject
         End If
         If mRelatedObject.isEmptyObject
            mRelatedObject.getWithID(RelatedObjectID)
         End If
         return mRelatedObject
      end get
   end Property
end class
オブジェクトは、必要になるまで(Getメソッドにアクセスするまで)オブジェクトのメモリから解放されるため、はるかに効率的であることがわかりました。これにより、データベースヒットを制限する際のパフォーマンスが大幅に向上し、メモリ領域が大幅に増加しました。