Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Performanceoptimierung von verknüpften if-Abfragen Kategorie: Programmierung Basic (von Jo - 24.05.2011 6:43)
Als Antwort auf Performanceoptimierung von verknüpften if-Abfragen von Jo - 31.01.2011 12:56

> > > > Hallo,
> > > >
> > > > Peter ich hab zwar dei Buch gelesen aber eine Frage hab ich da noch:
> > > >
> > > > Eine If Schleifen Konstruktion
> > > >
> > > > If a=1 And b=1 Then   ' sollte schneller sein
> > > >
> > > > If a=1 Then                ' als die Verschachtelung
> > > >    If b=1 Then
> > > >
> > > > Frage wird vom Interpreter die eine IF Schleifenprüfung abgebrochen wenn der erste nicht
> > zutreffende
> > > > Vergleich gefunden ist oder wird die Komplette Abfrage durchlaufen?
> > > >
> > > >
> > > > Gutes Buch übrigens, Glückwunsch!
> > >
> > > Hallo Michi,
> > >
> > > ich weiÃ?, ich bin nicht Peter.
> > > Habe aber meine Messungen um dein Beispiel erweitert.
> > > w steht für Word
> > > offizielle Version!
> > > Messprog von ErnstH
> > >
> > >         '
> > >         ' w1=1
> > >         ' w2=1
> > >         'If w1=1 And w2=1 Then     ' 628 Takte
> > >         'End If
> > >
> > >         ' w1=0
> > >         ' w2=1
> > >         'If w1=1 And w2=1 Then     ' 644 Takte
> > >         'End If
> > >         '
> > >         ' w1=1
> > >         ' w2=0
> > >         'If w1=1 And w2=1 Then     ' 644 Takte
> > >         'End If
> > >         '
> > >         ' w1=0
> > >         ' w2=0
> > >         'If w1=1 And w2=1 Then     ' 644 Takte
> > >         'End If
> > >         '
> > >         ' w1=0
> > >         ' w2=0
> > >         'If w1=1 Then           '323 Takte
> > >         '  If w2=1 Then
> > >         '  End If
> > >         'End If
> > >         '
> > >         ' w1=1
> > >         ' w2=0
> > >         'If w1=1 Then           '630 Takte
> > >         '  If w2=1 Then
> > >         '  End If
> > >         'End If
> > >         '
> > >         ' w1=1
> > >         ' w2=1
> > >         'If w1=1 Then           '630 Takte
> > >         '  If w2=1 Then
> > >         '  End If
> > >         'End If
> > >         '
> > > Viel Spass noch...besonders heut' abend.
> > > Manfred
> >
> > Hallo Peter,
> > können zukünftig die logischen Verknüpfungen effektiver vom Interpreter realisiert werden
> > (also das erste Nichtzutreffen bricht die weiteren Bewertungen ab) oder ist es gedacht,
> > dass die Anwender mehrere if-Abfragen verschachteln?
> >
> > Ist das ein Thema für eine Beauftragung durch Conrad?
> >
> > Viele Grü�e
> >
> > Jo
> Hallo Peter, darf ich dich dazu noch um eine kurze Aussage bitten?
Danke und viele
Grü�e Jo
Hallo Peter,
in einem momentanen Projekt wo es auf Performance ankommt behelfe ich mir mit der Verschachtelung von &&
also anstelle von if( (a == b) && (b==c) && (c==d) || â?¦.
schreibe ich

if(a == b) {
if( c==d) {
if( e==f) {
â?¦
}
}
}

Und bei or mit switch case geht mit vielen Einschränkungen

anstelle von if( (a == 1) || (a==2) || (a==3) ||â?¦.
Der Performanceworkaround

switch (a) {
case 1:
case 2:
case 3:

break;

}

Beides ist sehr unschön und beim || geht der Workaround nur in wenigen fällen.
Steht eine Verbesserung auf der Roadmap oder ist das auch ein Thema für Herrn Sommer von Conrad?

Viele Grü�e

Jo
 


    Antwort schreiben


Antworten: