我不想在微优化上引发一场激烈的战争,但我对某些事情感到好奇。
创建没有内在数据的类型的实例在内存和性能方面的开销是多少?
例如,一个实现的简单类IComparer<T>
可能只包含一个Compare
方法,而没有属性或字段。
class FooComprarer : IComparer<Foo>
{
public int Compare (Foo x, Foo y)
{
// blah, blah
}
}
我见过的典型示例代码只是调用new FooComparer()
,只要需要其中之一。
我无法想象这里的实例化成本非常高,但我很想知道它实际上是什么。以及它将如何与一个静态工厂类进行比较,该类维护一个比较器类型的字典,以便一个比较器实例可以在需要的任何地方使用。