Einzelnen Beitrag anzeigen

BavDev

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

StrToInt langsam in D 10.4

  Alt 25. Jun 2021, 10:31
Delphi-Version: 10.4 Sydney
Hallo,

ich portiere gerade eine größere Anwendung von DXE5 nach D10.4.2. Dazwischen hatte ich keine anderen Versionen, bin also erst vor Kurzem auf die aktuelle Version umgestiegen.
In der Anwendung habe ich einen Import von 5000 Datensätzen, der mit DXE5 kompiliert 3 Sekunden dauert. Mit D10.4.2 dauert er 1:21 Minuten! Alles gleicher Code... Ich fand dann heraus, dass das am StrToInt liegt. Das wird in dem Fall pro Datensatz 4x aufgerufen. Ich habe dann nach Alternativen gegoogelt, ohne Erfolg. Schließlich fand ich heraus, dass ich (nur) mit StrToIntDef die gewohnte Performance erreiche.

Kann mir das hier jemand bestätigen:
- StrToInt ist ab irgendeiner Version nach XE5 (welcher?) extrem langsam.
- Das gleiche gilt für TryStrToInt, aber nicht für StrToIntDef.
- Und entgegen anderer Meldungen in diversen Foren hat die Umkehrfunktion IntToStr nicht dieses Problem.

Frage:
- Warum ist das so? Das ist doch alles die gleiche Funktion, nur mit unterschiedlicher Fehlerbehandlung.

Mich kostet es jetzt einigen Aufwand, in ca. 1,5 Mio Codezeilen alle Vorkommen von StrToInt umzubauen... Nicht das was ich als RAD Development verstehe...
  Mit Zitat antworten Zitat