5 Stimmen

Java/Android-Code-Optimierung: Entfernt Java unerreichbaren Code bei der Erstellung

Schauen Sie sich bitte diesen Code an Android Beispiel :

private static final boolean aBoolean = false;

...

if(aBoolean){
   //do something like logs
}

In diesem Fall, da der Wert von aBoolean falsch ist und dass es nicht zur Laufzeit ändern kann, würde die / / tun so etwas wie Protokolle-Anweisung von auf Build ignoriert werden, oder wird es noch gebaut werden und jedes Mal, wenn es die wenn auswerten wird?

Ich versuche, ein Verhalten wie Pre-Prozessor #DEFINE #IF... zu finden, so dass, wenn ich Kodierung bekomme ich meine Protokolle, wenn ich freigeben ich einen Wert wechseln und alle meine Debug-Code wird komplett ignoriert.

(auch möchte ich darauf hinweisen, dass meine Frage ist Android orientiert, so dass, wenn es einen Unterschied zwischen Java und Android in dieser Angelegenheit bitte lassen Sie mich wissen)

3voto

Falmarri Punkte 46357

Die Überprüfung einer Variablen für die Protokollierung ist vollkommen in Ordnung. Selbst wenn der Code nicht optimiert wird, ist die Überprüfung einer booleschen Bedingung fast ein No-op, und Sie optimieren sehr vorzeitig.

Aber um Ihre Frage zu beantworten: Es wird wahrscheinlich optimiert.

-2voto

N-JOY Punkte 10272

Wenn die Anweisung unerreichbar ist, führt dies immer zu einem Kompilierfehler.....

z. B. wenn Sie return statemnt b4 jeder Code verwenden, wird dies Kompilierzeit Fehler geben.

aber wenn Sie diese Art von Code verwenden

if(aBoolean){ //etwas tun }

diese werden von Java nicht vermieden oder von Java nicht entfernt........

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X