Auch wenn es schon ein paarmal geschrieben wurde...
Von 10 mal so langsam zu 3 mal so schnell bei c#2008, ist doch ne super Erkenntnis !
Dein Vergleich ist als ob du zwei Autowerkstätten vergleichst.
Du bringst in beide Werkstätten ein Auto mit Anhänger zum Tuning, weil du damit schnell eine größere Strecke zurücklegen möchtest.
Die eine Werkstatt schraubt jetzt den Anhänger ab, weil du ihn auf der Strecke gar nicht brauchst, die andere lässt ihn dran.
Und du vergleichst dann welches Auto schneller ist. Logisch, dass das Auto schneller ist, an dem der nutzlose Anhänger abmontiert wurde, oder?
Und genauso ist es bei deinem Code. Du packst eine leere Schleife hin, der eine Compiler merkt, dass sie nutzlos ist, und entfernt sie, der andere setzt deinen Code 1:1 um.
(Leere Schleifen kann man schließlich auch selber entfernen...)
Und jetzt vergleichst du welcher Code schneller ausgeführt wird. Logisch, der, bei dem die Schleife gar nicht mehr da ist zur Laufzeit.
Wenn du so etwas zumindest etwas realistischer vergleichen willst, musst du erstens in die Schleife auch etwas hineinpacken und darfst keine externen
GUI Aufrufe oder ähnliches einbauen, weil die unberechenbare Auswirkungen haben und nichts mit der Umsetzung des Codes des Compilers zu tun haben.