AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie optimiert Delphi?

Ein Thema von nailor · begonnen am 2. Jan 2003 · letzter Beitrag vom 2. Jan 2003
 
Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#4
  Alt 2. Jan 2003, 22:40
Hallo!

Zitat von sakura:
Letztere ist schneller, wenn Du die Compileroption {$BOOLEVAL ON} bzw. {$B+} gesetzt hast. Standardmäßig sind diese jedoch aus.
Es ist genau umgekehrt!

Wichtiger Hinweis:
Ist der Compilerschalter B nicht gesetzt ({$B-}), werden Boolean-Ausdrücke grundsätzlich nur ausgewertet, bis das Ergebnis eindeutig ist. Bei AND beendet ein False, bei OR ein True die Auswertung.
Ist der Schalter gesetzt ($B+), wird der Ausdruck immer komplett durchlaufen.

Wenn also
Delphi-Quellcode:
function b1: Boolean;
...
function b2: Boolean;
...

begin
  if b1 and b2 then
  ...
end;
programmiert ist, wird bei B- die Funktion b2 nur aufgerufen, wenn b1 True geliefert hat! Wenn also b2 irgend etwas erledigt, was auf jeden Fall getan werden muß (z.B. beide Funktionen schliessen je eine Datei und liefern True, wenn erfolgreich), sollte B+ gesetzt sein!
Andererseite:
Delphi-Quellcode:
if (Length(satz) >= 5) and (satz [5] <> '#') then
  ..
bereitet bei B- ein kleines Problem, da satz [5] ggf. undefiniert ist! Bei Shortstrings klappt das ja noch, aber normale Strings liefern einen Absturz wegen fehlerhaftem Index. Hier stellt B+ eine Alternative dar. Ist aber irgendwie unsauber! Besser ist:
Delphi-Quellcode:
if Length(satz) >= 5 then
begin
  if satz [5] <> '#then
    ..
end;
Dann gibt es keine Probleme.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz