マイクロ最適化でフレーム戦争を開始したくはありませんが、何かに興味があります。
組み込みデータを持たない型のインスタンスを作成する場合のメモリとパフォーマンスのオーバーヘッドはどれくらいですか?
たとえば、実装する単純なクラスにはIComparer<T>
、メソッドのみが含まれ、Compare
プロパティやフィールドは含まれない場合があります。
class FooComprarer : IComparer<Foo>
{
public int Compare (Foo x, Foo y)
{
// blah, blah
}
}
私が見た典型的なコード例はnew FooComparer()
、これらのいずれかが必要な場合はいつでも を呼び出すだけです。
ここでのインスタンス化コストが非常に高いとはまったく想像できませんが、それが実際に何であるかを知りたいと思っています。そして、たとえば、必要な場所で 1 つの比較インスタンスを使用できるように、比較子への型の辞書を保持する静的ファクトリ クラスとどのように比較しますか。