I was benchmarking some type instantiation code, and I stumbled upon this:
when I instantiate in a loop 1,000,000 times a class with the code:
MyType t = Activator.CreateInstance<MyType>();
it takes 2800ms or thereabout.
When I use:
MyType t = (MyType)Activator.CreateInstance(typeof(MyType));
it takes 330ms or thereabout
(debug builds).
why this big difference? The code internally (peeking with reflector) shows
two different code paths, though I then wonder, why isn't
Activator.CreateInstance<T> implemented as:
public T CreateInstance<T>()
{
return (T)Activator.CreateInstance(typeof(T));
}
?
FB
===================================
This list is hosted by DevelopMentor® http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com