Laden...

Was ist schneller: Objekt neu erstellen oder bestehendes Objekt überschreiben?

Erstellt von snsewill vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.395 Views
Hinweis von herbivore vor 10 Jahren

Abgeteilt von Welche Liste kann mit welcher Schleife am schnellsten durchlaufen werden?

S
snsewill Themenstarter:in
18 Beiträge seit 2013
vor 10 Jahren

Nochmal was anderes! Wenn ich ein temporäres Objekt habe, sollte ich das immer wieder mit new erzeugen oder geht es schneller den Wert des vorhandenen Objektes zuzuweisen?

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo snsewill,

kann man nicht pauschal sagen, da es auf das Objekt und die Anzahl der Neuerstellungen darauf ankommt. Da hilft nur eine Messung mit einem Profiler. Aber: Erstell den Code so dass er leserlich und verständlich - Mikrooptimierungen schaden oft nur - siehe auch Performance eines C# Programms erhöhen ff.

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.2.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo snsewill,

über den dringenden Rat "premature optimization is the root of all evil" hinaus, sollte man nicht vergessen, dass (Referenz-)Objekte neben ihrem Verhalten und ihrem Zustand auch noch eine Identität besitzen.

Das in Kopie ohne ICloneable [oder warum man Objekte nicht kopieren sollte; Transaktionen auf Objekten] ff über das Kopieren gesagte gilt analog auch für das Überschreiben eines Objekts (mit dem Zustand eines anderen Objekts). Deshalb sollte man das Überschreiben genauso vermeiden, wie das Kopieren. Bei (Referenz-)Objekten sollte man also immer ein neues Objekt erzeugen und kein bestehendes Objekt überschreiben.

Heutzutage sind andere Kriterien wie Lesbarkeit oder eben konzeptuelle Klarheit fast immer wichtiger als Performance, erst recht, wenn es um solche Mikrooptimierungen geht. Andersherum hat eine tatsächlich erforderliche Optimierung meistens nur dann Aussicht auf nennenswerten Erfolg, wenn man die Aufwandsklasse reduziert, siehe auch Mergesort langsamer als Bubblesort? [==> Nein, Messfehler / Aufwandsklasse vs. Mikrooptimierungen].

herbivore