Codeoptimierung

dila71

Mitglied
Hallo,

ich habe eine Frage dazu, wie der .NET-Compiler es mit Codeoptimierung hält.

folgendes Problem

if (irgendwas)
{
#if DEBUG
tu etwas;
#endif
}

Um Speicher zu sparen, wurden die Precompileranweisungen in den Code eingebaut. Ist das Flag DEBUG nicht gesetzt, kommt der inner Codeanteil gar nicht bis zur Compilierung sondern fliegt raus.

1. Habe ich das bis hier her richtig verstanden?
2. Wenn ja und beim Kompiler kommt dann
if (irgendwas)
{}
an, schmeisst dieser das raus oder wird diese unnütze Kram mit übersetzt?


Danke für Eure Hilfe
Dirk
 
Hallo Cosmo,
danke für deine schnelle Antwort.
Bei 2. hast Du die Frage oder ich die Antwort missverstanden.
Anders formuliert:
Da 1. ja mit ja beantwortet ist, kommt ja ohne DEBUG-Mode beim Compiler es so an, als hätte ich im Code gleich nur:

if(irgendwas)
{;}

geschrieben.
Wird eine solche leere Anweisung bzw. Abfrage ohne Folgen mit kompiliert oder ignoriert?

Mfg Dirk
 
Natürlich wird sie mit kompiliert.
Ein Fehler wird dadurch aber nicht entstehen.
Pack doch die Abfrage mit in die Auswahl, sodass sie auch nicht mit kompiliert wird.
 
Danke, werde ich machen.
Hintergrund, es ist nicht mein Kram, ich soll einfach es so klein wie möglich machen egal wieviel es em Ende spart.
Hätte der Compiler das als Unsinn raus geschmissen, dann hätt ich es eben nicht anfassen brauchen.

Nochmals Danke
Dirk
 

Neue Beiträge

Zurück