Norbert Eder
Erfahrenes Mitglied
Ich würde gern mal den Sourcecode von Fridulin sehen bevor ich da über irgendwas diskutiere, was ich nicht gesehen habe.
Zum Thema Garbage Collector habe ich vor kurzem einen entsprechenden Beitrag geliefert. Entweder hier im Forum danach suchen, oder in meinem Blog unter http://blog.norberteder.com/index.php?entry=entry060111-123611 zu finden.
Zum Thema Strings:
Strings sind unter .NET immutable. Das bedeutet, dass sie nicht veränderbar sind.
Man nehme das folgende Beispiel:
Hier sieht das ganze so aus, dass zuerst ein String-Objekt mit dem Value "muh" gebildet wird. Möchten wir an "muh" den String "kuh" anhängen passiert folgendes:
Es wird ein neues String-Objekt am Heap erzeugt. Die Größte (Länge) des String-Objektes beträgt muh.Length + "kuh".Length. Nun wird das Ergebnis aus "muh" + "kuh" in das neue String-Objekt kopiert. Das alte String-Objekt muh wird nun für die Gargabe Collection freigegeben.
Was sagt uns das jetzt? Erstens sollte wenn möglich der StringBuilder verwendet werden. Dieser zahlt sich aber erst nach ca. 7 String-Operationen aus, da die Instanzierung des StringBuilders natürlich auch Kosten verursacht.
Weiters sagt uns das, dass wir nicht wissen wie Fridulins Sourcecode aussieht und wir daher nicht beurteilen können, WARUM sein Programm stehen bleibt, oder abstürzt, oder was es auch immer (nicht) tut.
Ergo, Sourcecode her und dann kann man eine entsprechende Aussage treffen. That easy way out, dudes.
Zum Thema Garbage Collector habe ich vor kurzem einen entsprechenden Beitrag geliefert. Entweder hier im Forum danach suchen, oder in meinem Blog unter http://blog.norberteder.com/index.php?entry=entry060111-123611 zu finden.
Zum Thema Strings:
Strings sind unter .NET immutable. Das bedeutet, dass sie nicht veränderbar sind.
Man nehme das folgende Beispiel:
Code:
string muh = "muh";
muh += "kuh";
Es wird ein neues String-Objekt am Heap erzeugt. Die Größte (Länge) des String-Objektes beträgt muh.Length + "kuh".Length. Nun wird das Ergebnis aus "muh" + "kuh" in das neue String-Objekt kopiert. Das alte String-Objekt muh wird nun für die Gargabe Collection freigegeben.
Was sagt uns das jetzt? Erstens sollte wenn möglich der StringBuilder verwendet werden. Dieser zahlt sich aber erst nach ca. 7 String-Operationen aus, da die Instanzierung des StringBuilders natürlich auch Kosten verursacht.
Weiters sagt uns das, dass wir nicht wissen wie Fridulins Sourcecode aussieht und wir daher nicht beurteilen können, WARUM sein Programm stehen bleibt, oder abstürzt, oder was es auch immer (nicht) tut.
Ergo, Sourcecode her und dann kann man eine entsprechende Aussage treffen. That easy way out, dudes.