Warum sollte ich den / optimize-Schalter NICHT verwenden, um meinen C # -Code zu kompilieren?

7

In Visual Studio 2008 gibt es eine Option "Code optimieren", die wahrscheinlich der Option / optimize entspricht. Es ist niemals aktiviert, auch nicht im "Release" -Modus.

Warum sollte ich nicht möchten, dass diese Option immer aktiviert ist?

    
Boris Callens 23.01.2009, 11:28
quelle

3 Antworten

9

Es ist standardmäßig für Release-Builds aktiviert (vielleicht haben Sie die Einstellungen für Release-Builds geändert?). Deaktivieren Sie es, um das Debuggen zu vereinfachen. Aktivieren Sie den Versionscode, um ihn zu aktivieren.

    
Brian Rasmussen 23.01.2009, 11:31
quelle
7

Code-Optimierung ist in C # 3 ziemlich gut geworden - es macht viele clevere Leistungsoptimierungen, die Ihren Code in der IL viel mehr verändern, als Sie vielleicht erwarten.

Einige Verschleierungstools (und einige andere IL-Tools wie ILMerge) können manchmal die Assembly mit optimierter Optimierung unterbrechen. Je mehr IL-Tools Sie verwenden, desto wahrscheinlicher ist es, dass Sie ernsthafte Probleme mit der Optimierung bekommen.

Auch wie @Brian Rasmussen schon gesagt hat (+1) - Sie wollen es zum Debuggen, für Releases.

    
Keith 23.01.2009 11:48
quelle
3

Um dies zu verdeutlichen, führt die Optimierung Inline-Funktionen durch und eliminiert einige Variablen. Wenn Sie optimierten Code debuggen, werden Sie von der IDE nicht so viel Hilfe bekommen wie sonst, da ein Teil des Codes tatsächlich nicht mehr existiert. Also, zum Debuggen, wenn ausgeschaltet (Standard).

In Sprachen wie C ++ Optimierung hat manchmal (oft) kritische Nebenwirkung, die berücksichtigt werden müssen. Soweit ich weiß, ist dies bei C # nicht oder fast nicht der Fall, also ist es unter dem Gesichtspunkt der Korrektheit Ihres Codes wahrscheinlich egal, ob Sie optimieren oder nicht.

    
mafu 23.01.2009 12:10
quelle