Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Try..except beschleunigen (https://www.delphipraxis.net/114610-try-except-beschleunigen.html)

magonline 28. Mai 2008 09:23


Try..except beschleunigen
 
Hallo

Mir ist aufgefallen, dass bei häufigem einlaufen in die Fehlerbehandlungen von Try..except Blöcken, die Prozessorauslastung deutlich sinkt und somit die Gesamtzeit, zur Ausführung von z.B. Berechnungen, zunimmt. Es scheint so, als ob eine einfache Exception Behandlung eine Art sleep- Funktion integriert hat.

Hat vielleicht jemand eine Ideee, wie man solche Exception-Blöcke beschleunigen kann ?

Sherlock 28. Mai 2008 09:26

Re: Try..except beschleunigen
 
Also ich bin generell der Meinung, daß man solche Konstrukte eher zurückhaltend einsetzen sollte, wenn man weiß, daß an einer bestimmten stelle etwas schief gehen kann, dann sollte man die Beteiligten Objekte halt selber prüfen und gar nicht erst in die Falle hineinlaufen (einfachstes Beispiel Division durch 0). Manchmal lässt es sich nicht vermeiden, aber bei Berechnungen sollte man die Dinger wirklich alle wegbekommen.

Edit: Willkommen bei der :dp:

Sherlock

Laufi 28. Mai 2008 09:30

Re: Try..except beschleunigen
 
Hallo

Du weisst schon das exceptions übersetzt Ausnahmen heisst und deshalb nur selten vorkommen also spielt es keine rolle wie schnell sie sind! :lol:

Liebe grüsse
Laufi

Sherlock 28. Mai 2008 09:32

Re: Try..except beschleunigen
 
Ich denke, er meint, daß die Anweisungen, die im Try-Teil einer Exception ausgeführt werden langsamer laufen. Und die werden immerhin immer ausgeführt, bis es halt knallt ;)

Sherlock

RavenIV 28. Mai 2008 09:33

Re: Try..except beschleunigen
 
Ich bin der selben Meinung wie Sherlock.
try..except hat seine Berechtigung, sollte aber nur sparsam eingesetzt werden.

Bei Berechnungen, Typumwandlungen (z.B. StrToInt), DB-Abfragen, usw. kann man vorher prüfen, ob alles OK ist.

Darüber hab ich mich schon öfters hier ausgelassen.
Somit verweise ich auf die Suchfunktion zur weiteren Begründung...

Luckie 28. Mai 2008 09:36

Re: Try..except beschleunigen
 
Ein try-except Block erfordert immer eine erhebliche Belastung der CPU durch den zusätzlichen Code, der ausgeführt werden muss, um eine Exception sicher abfangen zu können.

Sherlock 28. Mai 2008 09:36

Re: Try..except beschleunigen
 
Ich gebe hier mal ein Extrembeispiel (dafür wie man es nicht machen sollte), einer meiner Kollegen hat vor Jahren mal in die dpr ein try...except um alles gepackt. :lol:

Sherlock

magonline 28. Mai 2008 09:50

Re: Try..except beschleunigen
 
Leider ist es nicht möglich, auf diese try..except Blöcke zu verzichten, da sie meinen Formelparser "Nan" und "DivZero" tauglich machen. Was mir halt nicht einleuchten will ist, dass die Prozessorauslastung, bei häufigen Ausnahmebahandlungen, herunter geht und nicht ansteigt.

Sherlock 28. Mai 2008 10:00

Re: Try..except beschleunigen
 
Bist Du sicher, daß Du die Prüfung auf "DivZero" nicht selber vornehmen kannst?

Sherlock

magonline 28. Mai 2008 10:09

Re: Try..except beschleunigen
 
Es geht weniger um das Können, als vielmehr darum, dass ich einen großen Haufen von dynamischen Parser-Funktionen umschreiben müsste.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz