in

AntMe! - Die Ameisensimulation

AntMe! 2.0 Blog

Gedanken zur neuen AntMe! Version.

Schon wieder Listen in .NET und Profiling

Ich habe in der MSDN Library eine sehr schöne englische Artikelreihe über Listen in .NET gefunden. Dort wird unter anderem auch bestätigt, was ich mir über die Funktionsweise der Klassen ArrayList und List<T> schon gedacht habe. Die Artikel finden sich hier:

http://msdn2.microsoft.com/en-us/library/aa287104(VS.71).aspx

Außerdem habe ich mich ein wenig mit Profiling beschäftigt. Jeder Profi wird mir wahrscheinlich gleich auf den Hinterkopf hauen wollen, wenn ich das sage (Denkvermögen anregen und so), aber wir haben AntMe! bisher nie durch einen Profiler gejagt. Ein Profiler ist ein Programm, das kurz gesagt misst, wie oft jede Methode in einem Programm aufgerufen wird, wie lange das dauert und wie viel Speicher dabei verbraucht wird. Ich werde demnächst einen ausführlichen Blog Eintrag über das Profiling schreiben. Jetzt möchte ich aber bei den Listen bleiben und gebe lediglich folgendes bekannt:

In einem Spiel mit den Demo-A-Meisen wird der Befehl List<T>.Clear() knapp 200 Millionen mal aufgerufen und dessen Ausführung verschlingt über 38% der gesamten Laufzeit des Spiels. Wird zeit die Listen zu optimieren. Schnell.

Beim Leeren der Listen wird durch die komplette Liste iteriert und alle Elemente werden auf null gesetzt. Das dauert seite Zeit. ich denke darüber nach meine Group<T> Klasse so zu ändern, dass das unterlassen wird. Damit bleiben die Elemente in der Liste bis sie überschrieben werden. Das wirkt sich dann positiv auf die Geschwindigkeit aber negativ auf den Speicherverbrauch aus. Ich werde damit ein wenig herumspielen und die Ergebnisse dann hier bekannt geben.

Chuck Norris counted to infinity - twice.

Veröffentlicht Nov 15 2007, 03:48 von wolfgang

Kommentare

Keine Kommentare
© 2008 AntMe Limited | Impressum
© 2007 Microsoft Deutschland GmbH