Здравствуйте, Qbit86, Вы писали:
Q>Интуитивно кажется, что это не так, и «default(TMonoid)» должен быть эффективнее, чем «new TMonoid()» для создания экземпляров value-типов вроде decimal в generic-коде. Хотя бы из-за Activator.CreateInstance().
Q>Но точно не знаю, так что побенчмаркал. В .NET Core < 3.0 действительно new TMonoid() заметно медленнее. Но в .NET Core 3.0+ уже разницы нет. Activator.CreateInstance() по-прежнему есть в IL, но, видимо, JIT как-то лучше оптимизирует.
Да, джит устраняет Activator.CreateInstance<T>() если T — это value type
Github: Optimize Activator.CreateInstance... << RSDN@Home 1.0.0 alpha 5 rev. 0>>