DateTime.DayOfWeek MikrooptimierungC#

Ein Treffpunkt für C#-Programmierer
Guest
 DateTime.DayOfWeek Mikrooptimierung

Post by Guest »

Zuallererst:
  • Ich stelle diese Frage nur zum Spaß und bin lernbegierig. Ich muss zugeben, dass ich es liebe, mit Mikrooptimierungen herumzuspielen (obwohl sie bei keiner meiner Entwicklungen zu einer nennenswerten Geschwindigkeitssteigerung geführt haben).
  • Die DateTime.DayOfWeek-Methode stellt in keiner meiner Anwendungen einen Engpass dar.
  • Und es ist < em>höchst unwahrscheinlich, dass es in irgendeinem anderen Fall ein Problem darstellt. Wenn jemand denkt, dass diese Methode einen Einfluss auf die Leistung seiner Anwendung hat,
    sollte er darüber nachdenken, wann er optimieren muss, und dann eine Profilerstellung durchführen.
Dekompilieren der DateTime-Klasse mit ILSpy, wir finden heraus, wie DateTime.DayOfWeek implementiert wird:

Code: Select all

public DayOfWeek DayOfWeek
{
[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
get
{
return (DayOfWeek)((this.InternalTicks / 864000000000L + 1L) % 7L);
}
}

public long Ticks
{
[__DynamicallyInvokable, TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
get
{
return this.InternalTicks;
}
}
Diese Methode führt Folgendes aus:
  • Die Ticks, die dem aktuellen Tag entsprechen, werden durch die vorhandenen geteilt Anzahl der Ticks pro Tag.
  • Wir addieren 1 zum obigen Ergebnis, damit der Rest der Division von 7 zwischen den Zahlen liegt 0 und 6.
Ist dies die einzige Möglichkeit, den Wochentag zu berechnen?
Wäre es möglich, dies erneut zu implementieren, damit es schneller läuft?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post