Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Unterschied Kompilierung Delphi 2007 und Delphi XE5 (https://www.delphipraxis.net/183378-unterschied-kompilierung-delphi-2007-und-delphi-xe5.html)

michele_tedesco 6. Jan 2015 10:33

Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
Hallo Zusammen

Ich versuche nun seit Wochen herauszufinden, wieso der selbe Code einer "Monolith"-Software in XE5 kompiliert einfriert und im alten Kompilat (D2007) nicht.

Ich habe mit Hilfe von AQTime herausgefunden, wo in etwa die meiste CPU-Zeit gebraucht wird. Ich konnte somit feststellen, dass grob die CPU-Auslastung in beiden Kompialte etwa die selbe ist.
Jedoch finde ich nicht heraus, wieso in XE5 das Programm bei hoher Last einfriert, wohingegen beim alten Kompilat dies nicht passiert.

Wie geht man hier vor um diesen "Flaschenhals" in XE5 zu finden und zu eruieren.

Ich würde gerne ein Code-Beispiel mitsenden, jedoch kann die Applikation beinahe nicht mehr auseinander nehmen, so dass ich nur dieses Feature hier posten könnte.

Dieses Feature beinhaltet eine array von Pointer (Pointer auf ein Record), eine TList von Forms, mehrere TTcpClient und ein TTCPServer (mit SendText und ReceiveText, ich habe dies bereits mit SendBuf und ReceiveBuf ersetzt) und 2 linked listd (als zusammen gehängte Records).

Sobald der TTCPServer intensiv Daten senden, friert die Applikation, wo der client läuft ein.

Hat da jemand Erfahrung im Eruieren solcher Fälle??

Danke :)

Sherlock 6. Jan 2015 10:41

AW: Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
Der gravierendste Unterschied zwischen D2007 und XE5 dürfte die String, AnsiString, WideString Problematik sein. Da Du offenbar Texte per TCP sendest und empfängst könnte die unter Umständen unerwartete Größe der Textzeichen ein Problem darstellen, daß Du durch stumme Exceptions abfängst.

Sherlock

Perlsau 6. Jan 2015 10:47

AW: Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
Wie wär's mit Debuggen?

Redeemer 6. Jan 2015 19:35

AW: Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
Was ist denn das für ein Zielsystem? Wenn ich mit XE2 nach Win64 kompiliere, funktioniert der IdTCPClient bei mir nicht. Hängt sich einfach alles auf.

michele_tedesco 7. Jan 2015 07:59

AW: Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
@Perlsau
Ich habe mit AQTime herausgefunden welche Code-Teile am meisten CPU-Zeit beanspruchen und habe diese Werte in XE5 und D2007 verglichen.
Der Vergleich hat gezeigt, dass an den selben Stellen etwa die selbe Auslastung statt findet.

Tatsache ist aber, nach einem "peak" in der CPU Auslastung erholt sich die Applikation wieder im 2007 Kompilat, bleibt aber hängen im XE5 Kompilat.

Bjoerk 7. Jan 2015 10:37

AW: Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
Zitat:

Zitat von michele_tedesco (Beitrag 1285548)
Dieses Feature beinhaltet eine array von Pointer (Pointer auf ein Record), eine TList von Forms .. []

SizeOfPointer(D2007) <> SizeOfPointer(XE5).

DeddyH 7. Jan 2015 10:39

AW: Unterschied Kompilierung Delphi 2007 und Delphi XE5
 
Nicht unbedingt, das hängt wohl vom Zielsystem ab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 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