Design Frage



  • Hallo,

    hab da einen Callback der ständig aufgerufen wird. Der Status ist fast immer false. Aber irgendwo muss ich meine Variable wasExecuted ja zurücksetzen. Also ich kann es nicht verhinden, dass wasExecuted bei jedem Callback Aufruf wieder gesetzt wird, nur aufgrund der Tatsache dass ich es irgendwo auf false setzen muss.

    bool wasExecuted // Member of class
    
    callback()
    {
       if(Status == true)
       {
            if(postDelived.isTrue())
                wasExecuted = true;
       }
       else
       {
           wasExecuted = false;
    
       }
    }
    


  • Du hast die Frage vergessen.



  • Lol will eigentlich nur die Bestätigung dass man das nicht anders machen kann 🙂



  • Hoho schrieb:

    Lol will eigentlich nur die Bestätigung dass man das nicht anders machen kann 🙂

    Man kann immer alles anders machen.



  • Ich verstehe nichtmal die Beschreibung. Worum es eigentlich geht.
    Wozu ist wasExecuted gut? Wird ja nirgends verwendet.



  • Nochmal so nee Frage *gg* Ab wann lohnt sich die Speicherung in einer eigenen Variablen value statt dem Funktionsaufruf 🙂

    int value = someClass.getValue();
    
    if(..)
    {
    Boolean x1 = Convert.ToBoolean(value);
    }
    if(..)
    {
    Boolean x2 = Convert.ToBoolean(value);
    }
    

    oder halt :

    if(..)
    {
    Boolean x1 = Convert.ToBoolean(someClass.getValue());
    }
    if(..)
    {
    Boolean x2 = Convert.ToBoolean(someClass.getValue());
    }
    


  • KKKKKK schrieb:

    Nochmal so nee Frage *gg* Ab wann lohnt sich die Speicherung in einer eigenen Variablen value statt dem Funktionsaufruf 🙂

    Etwa ab Dienstag.



  • Also ich find die 2.Version schöner. Aber es muss halt jedesmal ein Funktionsaufruf gemacht werden. Wie seht ihr das ?



  • Kommt halt stark auf den Kontext an 😉
    Sag, was hast du vor?



  • Anfangsfrage:

    bool wasExecuted // Member of class
    
    callback()
    {
       wasExecuted = (Status && postDelived.isTrue());
    }
    

    KKKKKK schrieb:

    Nochmal so nee Frage *gg* Ab wann lohnt sich die Speicherung in einer eigenen Variablen value statt dem Funktionsaufruf 🙂

    Mach es so wie es nötig und und schön ist. 😉
    Dein Beispiel lässt sich vereinfachen in:

    Boolean xAll = Convert.ToBoolean(someClass.getValue());
    
    if(..)
    {
    }
    if(..)
    {
    }
    

    Deine Fragen sind viel zu abstrakt, gehts dir um Design oder Performance?
    Wenn es dir um Performance geht: Vergiss es.
    Wenn es dir um Design geht: Mach so wies einfacher/verständlicher ist



  • DarkShadow44 schrieb:

    Wenn es dir um Performance geht: Vergiss es.

    Ein bisschen weit aus dem Fenster gelehnt finde ich.
    Du weisst ja nicht was in der Funktion someClass.getValue alles gemacht wird.
    Vielleicht macht der ein multi-million SELECT auf 10 gejointe Tabellen, ackert das alles durch und gibt dir dann ... naja irgend einen Wert den er daraus berechnet hat zurück 😉
    Wenn someClass.getValue dagegen als return blubb; implementiert ist, dann ist es natürlich Wurst.



  • @hustbaer
    Ich wäre jetzt eigentlich davon ausgegangen dass es bei so speziellen Fällen eh klar ist und sich die Frage gar nicht stellt. 😉
    Im Normalfall sind solche Optimierungen nur sinnvoll wenn man wirklich Probleme hat - und nachgemessen hat.



  • Die Grenzen sind da fliessend.
    Was ist zu viel? Wann summiert sich 1000x "ein bisschen was" zu "doch ordentlich viel"?
    Und da der OP hier ganz offensichtlich keine Erfahrung hat, finde ich es gefährlich eine nicht weiter eingeschränkte Aussage ala "ist Wurst" zu so einem Thema zu machen.



  • hustbaer schrieb:

    Und da der OP hier ganz offensichtlich keine Erfahrung hat, finde ich es gefährlich eine nicht weiter eingeschränkte Aussage ala "ist Wurst" zu so einem Thema zu machen.

    Wenn der solche Fragen stellt und was wirklich performacekritisches programmiert, dann ist es auch schon wurst.



  • Der Aufruf einer Variablen kosten vielleicht 1nanosekunde . Der einer Funktion 2 nanosekunden. Ab einer gewissen Anzahl von Aufrufen kann das schon mal ein Zeitproblem werden



  • asdfasf schrieb:

    Der Aufruf einer Variablen kosten vielleicht 1nanosekunde . Der einer Funktion 2 nanosekunden. Ab einer gewissen Anzahl von Aufrufen kann das schon mal ein Zeitproblem werden

    Stichwort Cache 😉



  • asdfasf schrieb:

    Der Aufruf einer Variablen kosten vielleicht 1nanosekunde . Der einer Funktion 2 nanosekunden. Ab einer gewissen Anzahl von Aufrufen kann das schon mal ein Zeitproblem werden

    Wie ruft man Variablen auf?



  • Wie ruft man Variablen auf?

    Anders als Funktionen oder was meinst du *gg*

    Ja wenn der Compiler schlau aus dann rationalisiert er mehrfach gleiche Funktionsaufrufe einfach weg.


Log in to reply