Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Größe Exe-Datei XE2 -> XE4 (https://www.delphipraxis.net/174481-groesse-exe-datei-xe2-xe4.html)

Der schöne Günther 16. Mai 2013 18:13

AW: Größe Exe-Datei XE2 -> XE4
 
Danke.

Aber wie gesagt, mich stört es nicht. Ich bin nur neugierig, was sich denn von XE2 auf XE4 in einer reinen Win32-Anwendung ohne FM geändert haben könnte. Was sollte sich denn bei den Generics noch geändert haben?

jbg 16. Mai 2013 21:12

AW: Größe Exe-Datei XE2 -> XE4
 
Bei den Generics hat sich geändert, dass ab XE3 die RTL und VCL von TList/TObjectList auf TList<Alle möglichen Klassen> umgestellt wurde. Das bedeutet, dass statt der einen TList/TObjectList Klasse nun um einiges mehr TList<T> herumschwirren, da der Compiler für jedes T eine eigene Kopie anfertigt.

Was früher eine einzige TList mit Typecasts war, ist jetzt TList<TAction>, TList<TComponent>, TList<TField>, TList<...>, ...

Codegenerier-technisch könnte man all die Listen wieder zu einer zusammenfassen, da keine dieser auf irgendwelche speziellen Eigenschaften der Klassen zugreift, also alle mit einem TList<TObject> abbildbar wären. Ein harter Typecast ist nämlich in wirklichkeit nur eine Uminterpretation der Daten, was in Fall von Objekt-Referenzen zu keinem einzigen Maschinencode-Byte führt.
Aber das wollen die für den Compiler Verantwortlichen nicht implementieren.

Stevie 16. Mai 2013 23:25

AW: Größe Exe-Datei XE2 -> XE4
 
Zitat:

Zitat von Matthias Eissing
Weiß man nicht, was RTTI ist, kann man das auch ausschalten.

Falsch - genau das Gegenteil ist der Fall. Man muss nämlich sehr genau wissen, was RTTI ist, und ob irgendein Code in der Anwendung diese benötigt.
Inzwischen wird nämlich in vielen unterschiedlichen Teilen diese oft genutzt - einige Beispiele wären: Serialisierung, ORM, DI und *trommenwirbel* LiveBindings.

MEissing 17. Mai 2013 06:26

AW: Größe Exe-Datei XE2 -> XE4
 
Zitat:

Zitat von Stevie (Beitrag 1215592)
Zitat:

Zitat von Matthias Eissing
Weiß man nicht, was RTTI ist, kann man das auch ausschalten.

Falsch - genau das Gegenteil ist der Fall. Man muss nämlich sehr genau wissen, was RTTI ist, und ob irgendein Code in der Anwendung diese benötigt.
Inzwischen wird nämlich in vielen unterschiedlichen Teilen diese oft genutzt - einige Beispiele wären: Serialisierung, ORM, DI und *trommenwirbel* LiveBindings.

...du hast ein prominentes Beispiel vergessen: DataSnap.

Aber "Danke" für die "zielgerichtete Klarstellung".

Stevie 17. Mai 2013 07:03

AW: Größe Exe-Datei XE2 -> XE4
 
Zitat:

Zitat von MEissing (Beitrag 1215599)
...du hast ein prominentes Beispiel vergessen: DataSnap.

Aber "Danke" für die "zielgerichtete Klarstellung".

Siehste - ich nutz es nicht, und weiß daher nicht, wie es intern funktioniert. :)

P.S. sollen die "" etwa Ironie zum Ausdruck bringen?

Der schöne Günther 17. Mai 2013 09:00

AW: Größe Exe-Datei XE2 -> XE4
 
Zitat:

Zitat von jbg (Beitrag 1215572)
Bei den Generics hat sich geändert, dass ab XE3 die RTL und VCL von TList/TObjectList auf TList<Alle möglichen Klassen> umgestellt wurde.

Ok, das war mir neu. :thumb:

sh17 14. Apr 2014 12:33

AW: Größe Exe-Datei XE2 -> XE4
 
Zitat:

Zitat von jbg (Beitrag 1215572)
Bei den Generics hat sich geändert, dass ab XE3 die RTL und VCL von TList/TObjectList auf TList<Alle möglichen Klassen> umgestellt wurde. Das bedeutet, dass statt der einen TList/TObjectList Klasse nun um einiges mehr TList<T> herumschwirren, da der Compiler für jedes T eine eigene Kopie anfertigt.

Was früher eine einzige TList mit Typecasts war, ist jetzt TList<TAction>, TList<TComponent>, TList<TField>, TList<...>, ...

Codegenerier-technisch könnte man all die Listen wieder zu einer zusammenfassen, da keine dieser auf irgendwelche speziellen Eigenschaften der Klassen zugreift, also alle mit einem TList<TObject> abbildbar wären. Ein harter Typecast ist nämlich in wirklichkeit nur eine Uminterpretation der Daten, was in Fall von Objekt-Referenzen zu keinem einzigen Maschinencode-Byte führt.
Aber das wollen die für den Compiler Verantwortlichen nicht implementieren.

Hab das mal getestet, das ist ja übel - mit jedem neuen generischem Typ wächst die Exe um rund 20k. Wenn ich da jetzt richtig von gebrauch machen würde und alle unsere um die 50 abgeleiteten TObjectLists auf Generics umstellen würden ...... grusel

Der schöne Günther 14. Apr 2014 12:59

AW: Größe Exe-Datei XE2 -> XE4
 
Ich habe das nie verstanden, warum die Dinger dann Generics genannt werden und nicht Templates? Denn das sind sie dann im Endeffekt doch, oder?

PS: Von Generics in .Net bzw. deren Unterschied zu C++ Templates habe ich keine Ahnung.

jaenicke 14. Apr 2014 13:22

AW: Größe Exe-Datei XE2 -> XE4
 
Zitat:

Zitat von sh17 (Beitrag 1255566)
Hab das mal getestet, das ist ja übel - mit jedem neuen generischem Typ wächst die Exe um rund 20k. Wenn ich da jetzt richtig von gebrauch machen würde und alle unsere um die 50 abgeleiteten TObjectLists auf Generics umstellen würden ...... grusel

Ja, unsere Exe wächst auch ziemlich stark, mittlerweile sind das rund 50 MiB, früher waren es mal unter 10 MiB, natürlich auch mit ein wenig weniger Funktionalität. Aber ein Problem sehe ich da nicht, auch wenn es natürlich schöner wäre, wenn sie kleiner wäre.

CocoPops 14. Apr 2014 14:02

AW: Größe Exe-Datei XE2 -> XE4
 
Gemeinde.

Ich bin Besitzer einer XE2-Version.
Ich möchte gerne auf XE4 umsteigen, nicht XE5!

Welche Unterschiede gibt es zwischen XE2 und XE4 bezüglich der Exe-Datei? Ist der Code besser, optimierter oder ähnliches?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Seite 3 von 6     123 45     Letzte »    

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