Ich sah nur this upvoted commentWie wichtig ist es, eine Variable für DateTime.Today zu verwenden, wenn es um die Leistung geht? ersten
IIRC
DateTime.Today
ist ein ziemlich teuer Anruf, so dass Sie besser den Wert in einer Variablen speichern.
Es als Antwort auf einen Beitrag war, die den Code enthalten:
var first =
new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(-1);
var last =
new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddDays(-1);
Wenn ich die Leistung zu verbessern suchen, wie wichtig es ist DateTime.Today
in einer Variablen zu speichern, anstatt es mehrmals zu nennen? Und ungefähr wie viele Verwendungen von DateTime.Today
würde es rechtfertigen, eine Variable dafür zu erstellen?
Bearbeiten: Ich weiß, dass ich mein Programm testen sollte, um zu sehen, ob es Leistungsprobleme gibt, bevor Sie sich über etwas so Triviales wie dieses Sorgen machen. Nehmen Sie für diese Frage an, dass ich dies bereits getan habe und festgestellt habe, dass zusätzliche Optimierung erforderlich ist.
Persönlich würde ich nur eine Variable nehmen, wenn ich wollte, dass der Today-Wert für alle Verwendungen gleich ist. Ansonsten würde ich für Lesbarkeit kodieren und das Leistungsproblem vergessen, bis es ein Hot Spot wird. Natürlich ist die offensichtliche Antwort, wenn die Leistung vorrangig ist, eine Variable zu nehmen, wann immer Sie sie 2 oder öfter benutzen. Wie oft, bevor es zu einem Problem wird, ist völlig subjektiv, aber ich würde vermuten, dass es eine Menge Anrufe braucht, bevor es zu einem Problem kommt. –
Ich denke, du solltest ein Programm schreiben, um es zu testen und die Ergebnisse zu posten! –
Randnotiz: das Hauptproblem mit diesem Code ist es * nicht korrekt * - stellen Sie sich vor, was einmal pro Tag/Jahr passieren wird, wenn 2 Aufrufe an 'Today' unterschiedliche Tage erreichen. Es zeigt auch, dass "Heute"/"Jetzt" nicht testbar sind, da der Schreibeinheit-Test für das "neue Jahr" weniger als trivial ist - daher wäre es viel besser, diesen Aufruf zu abstrahieren, selbst bei einigen Leistungskosten und Testergebnissen. –