Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - "case" vs. "if then" Geschwindigkeit
Stefan-W - Mo 28.06.04 21:50
Titel: "case" vs. "if then" Geschwindigkeit
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
Tino: Topic aus Sonstiges verschoben am Di 29.06.2004 um 08:49
Delete - 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 - 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.
Delete - 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 - Di 29.06.04 22:30
Tolle Idee, darauf bin ich garnicht gekommen :oops: , obwohl es auf der Hand gelegen hätte.
Motzi - 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..
Stefan-W - So 04.07.04 18:31
gut zu wissen, ich werde case in Zukunft öffter nutzen...
Danke für eure Hilfe
Tschau Stefan
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!