Autor Beitrag
Stefan-W
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Mo 28.06.04 21:50 
Hey Leut's

Kann ich mein Proc schnellermachen indem ich stad "if then" "case" benutze oder nimmt sich das nix? Ich habe viele solche abfragen drinn, und wenn "case" schneller ist würde sich des bei mir lohnen?

Danke schon mal in voraus...

Tschau Stefan


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Di 29.06.2004 um 08:49
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 28.06.04 21:58 
Ich weiß nicht ob sich das viel nimmt. Aber übersichtlicher dürfte "case" wahrscheinlich werden. Zumindest benutze ich es, so möglich, lieber als diverse if/then's.
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Mo 28.06.04 23:31 
Ansich dürfte es egal sein welche Abfragen du verwendest. Ich bevorzuge der Übersichtlichkeit halber bei mehreren Entscheidungsmöglichkeiten Case-Abfragen. Die haben nur einen Nachteil. Sie können nur auf Variablen von Abzählbaren Typen angewandt werden, also zum Beispiel nicht auf Strings und Records.

_________________
Linux und OpenSource rulez!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 28.06.04 23:51 
case ist auf alle Fäller besser als if/then, da der Compiler besser optimieren kann. Kuck dir mal eine case-Sbfrage im CPU Fenster an und eine if Abfrage zum Vergleich.
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Di 29.06.04 22:30 
Tolle Idee, darauf bin ich garnicht gekommen :oops: , obwohl es auf der Hand gelegen hätte.

_________________
Linux und OpenSource rulez!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 29.06.04 23:11 
Hier hat Chewie das mal zerpflückt: www.delphipraxis.net...st187088.html#187088

Und wenn du in der DP angemeldet bist, kannst du dir das JPG vom CPU Fenster ankucken, was er angehangen hat.
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mi 30.06.04 00:09 
Bei einem Case erstellt der Compiler eine "Sprung-Tabelle" und berechnet dann nur noch die Adresse innerhalb dieser Tabelle (berechnet -> daher geht das auch nur mit Ordinalen Typen) während bei einem if immer der ganze Ausdruck auf True geprüft werden muss...!

Das mit der Sprung-Tabelle sieht man ganz gut in Chewies Posting in der DP..

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: So 04.07.04 18:31 
gut zu wissen, ich werde case in Zukunft öffter nutzen...

Danke für eure Hilfe

Tschau Stefan