> ich stehe grad vor einer neuen Architekturentscheidung, für die
> Performance sehr wichtig ist, daher die Frage:
>
> Wieviel kostet ein Typvergleich, etwa
> dings.GetType==typeof(DingsKlasse)? Ist so ein Vergleich egal für die
> Performance oder eher langsam?
Hab es auch noch nicht getestet, aber auf jeden Fall muss dafür ein bzw.
zwei Typ-Objekt(e) instantiiert werden... Ode werden die vielleicht eh
instantiiert beim laden der Klassen?!?
Ich könnte mir jedenfalls vorstellen, dass das schneller ist:
(dings as DingsKlasse) != null
Allerdings ist die Funktionalität leicht anders, da auch Objekte aus
abgeleiteten Klassen erkannt werden...
Wenn Dir das egal ist, mach mal time das doch mal... (ungetestet)
object[] dinge = new object[]{new object(), new DingsKlasse(), new
AnotherKlasse(), ...}
Object o = new object();
int c;
DateTime start = DateTime.Now;
for(int it=0; it<1000000; i++)
{
for(int i = 0; i++ i<dinge.Count)
{
if dinge[i].GetType==typOf(DingsKlasse) c++;
//if (dings as DingsKlasse) != null c++;
}
}
DateTime end = DateTime.Now;
TimeSpan zeit = end-start;
// Dann c und zeit ausgeben
Ich inkrementiere c, damit der Vergleich nicht vom Compiler
wegrationalisiert wird...
Claudius
_______________________________________________
CSharp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net