AGB  ·  Datenschutz  ·  Impressum  







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

StrToInt langsam in D 10.4

Ein Thema von BavDev · begonnen am 25. Jun 2021 · letzter Beitrag vom 29. Jun 2021
Antwort Antwort
Seite 2 von 2     12   
Sailor

Registriert seit: 20. Jul 2008
Ort: Balaton
112 Beiträge
 
Delphi 2010 Professional
 
#11

AW: StrToInt langsam in D 10.4

  Alt 25. Jun 2021, 22:45
Du hast irgendwo in der Umgebung einen Breakpoint gesetzt. Lösche mal alle und versuch‘s noch mal.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: StrToInt langsam in D 10.4

  Alt 26. Jun 2021, 08:31
Vor allem Breakpoints mit Bedingung verlangsamen den Prozess extrem.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: StrToInt langsam in D 10.4

  Alt 26. Jun 2021, 08:42
Hallo,
was passiert, wenn du das Programm im Debugmodus ohne IDE startest?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#14

AW: StrToInt langsam in D 10.4

  Alt 26. Jun 2021, 09:27
Vor allem Breakpoints mit Bedingung verlangsamen den Prozess extrem.
...und Watch-Expressions...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#15

AW: StrToInt langsam in D 10.4

  Alt 26. Jun 2021, 09:29
Ich tippe aber doch auf die Exceptions, denn die werden bei StrToIntDef erst gar nicht geworfen. Vermutlich sind die EConvertError Exceptions in der IDE ausgeblendet, sonst würden die ja auffallen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BavDev

Registriert seit: 21. Nov 2014
13 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: StrToInt langsam in D 10.4

  Alt 28. Jun 2021, 11:30
Hallo,

@hoika: Debug-Modus ohne IDE kenne ich nicht.... Ich debugge immer von der IDE aus.

@Uwe Raabe:
Ich bin natürlich inzwischen schon wieder ganz woanders... Kann mich nicht erinnern, was genau gestellt war. Ich denke, ich hatte keine Breakpoints und keine Variablen bei diesem Test. Was ich sicher weiß: gleiche Voraussetzungen, einfach StrToInt durch StrToIntDef ersetzt, und es war schneller. Im Übrigen hatte ich auch mit StrToIntDef die gleichen Exceptions! Weil der Code war so:
try
i:=StrToInt(Text);
except
i:=MeinFehlerCode;
end;
(dauert 1:21 min)
bzw. neu
try
i:=StrToIntDef(Text,-1);
if i<0 then abort;
except
i:=MeinFehlerCode;
end;
(dauert 3 sek)

Das ist nur vereinfacht, zwischen try...except steht noch mehr, was einen Fehler werfen kann. Und die Fehlercodes werden entsprechend gesetzt.

Also es gibt keine zuverlässige Ursache?
Soll mir jetzt recht sein. Es reicht mir, wenn das Endprodukt sich "normal" verhält.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#17

AW: StrToInt langsam in D 10.4

  Alt 28. Jun 2021, 12:40
Ein Abort erzeugt zwar auch eine Exception, die aber im weiteren Verlauf ignoriert wird und somit in der IDE nicht aufpoppt. Insofern kann man diesen Code
Delphi-Quellcode:
try
  i:=StrToIntDef(Text,-1);
  if i<0 then abort;
except
  i:=MeinFehlerCode;
end;
auch einfach so schreiben
Delphi-Quellcode:

  i:=StrToIntDef(Text, MeinFehlerCode);
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BavDev

Registriert seit: 21. Nov 2014
13 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: StrToInt langsam in D 10.4

  Alt 29. Jun 2021, 10:32
Uwe,
das ist mir schon klar, aber in diesem Zusammenhang nicht machbar.
Wie ich schon geschrieben hatte, passiert zwischen Try und except noch einiges andere, was Fehler verursachen könnte, und zwischen Except und End werden die einheitlich behandelt.
Und Dein Vorschlag geht schon deswegen nicht, weil die Fehlercodes sind Zahlen von 0 bis X, anhand derer ich den Fehlerort bestimme für die Weiterbehandlung, z.B. eine gezielte Fehlermeldung. Ein solcher Code kann aber auch ein gültiges Ergebnis von StrToIntDef sein.
Nix für ungut...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 07:57 Uhr.
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