AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Wie bekomme ich die exe kleiner?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bekomme ich die exe kleiner?

Ein Thema von NicoleWagner · begonnen am 27. Jan 2020 · letzter Beitrag vom 8. Feb 2020
Antwort Antwort
Seite 7 von 7   « Erste     567   
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#61

AW: Wie bekomme ich die exe kleiner?

  Alt 7. Feb 2020, 19:37
Kann man die RTTI (oder wie heißt das?) eigentlich einfach deaktivieren, wenn man sie nicht benötigt? Und wie viel ändert das an der Größe?
Hallo,

per Unit kannst du zumindest Teile davon auch abschalten. Du kanst dir sogar
raussuchen welche. Icxh weiß nur nicht mehr auswendig wie das Stichwort dazu lautet.
Es gibt aber eine Direktive die man an den Anfang der Unit schreibt.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#62

AW: Wie bekomme ich die exe kleiner?

  Alt 7. Feb 2020, 19:39
Kann man die RTTI (oder wie heißt das?) eigentlich einfach deaktivieren, wenn man sie nicht benötigt? Und wie viel ändert das an der Größe?
RTTI für System.Generics.Collections ausgeschalten, TEnumerable<T>.ToArray virtual abstract gemacht und noch ein paar kleinere Anpassungen in System.Generics.Defaults -> 1.6MB, davon 134KB durch Generics (14 TDictionary<,> und 29 TList<>).

Warum 30 Listen weniger? Ich vergaß: TDictionary<TKey, TValue> hat intern Klassen, die von TEnumerable<TKey> und TEnumerable<TValue> ableiten, somit bekam man pro TDictionary<,> 3 neue TList<> Klassen (für TKey, TValue und TPair<TKey,TValue>) - wären also im besten Fall 42 mal TList<> weniger - einige Kombinationen sind aber noch wirklich als TList<> benutzt - z.B. wenn ein TDictionary als key TClass hat, denn TList<TClass> wird irgendwo benutzt.
Gibt's für diese Ideen schon QP feature requests?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#63

AW: Wie bekomme ich die exe kleiner?

  Alt 7. Feb 2020, 20:07
Gibt's für diese Ideen schon QP feature requests?
Nein, ich trage Dinge nicht mehr ein, wo ich von vornherein weiß, dass sie nicht gemacht werden.
- die Änderung für TEnumerable<T>.ToArray hab ich an einen Entwickler kommuniziert und das wird wohl in 10.4 drin sein (10.3.x ging nicht, da breaking change).
- RTTI ausschalten werden sie nicht machen, da dann der ganze JSON und sonstiges jegliches Serialisieren nicht mehr funktioniert.
- die Änderungen in System.Generics.Defaults, die ich gemacht habe sind auch Breaking changes (TComparer<T> und TEqualityComparer<T> auf record geändert, so dass dort weniger unnötiger Code erstellt wird)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#64

AW: Wie bekomme ich die exe kleiner?

  Alt 8. Feb 2020, 13:49
Wird als Optimierung intern auch der selbe Code verwendet, wenn die Typen quasi kompatibel sind, bzw. wo praktisch der selbe Assembler-Code entsteht?

z.B. TDictionary für Byte, ShortInt, PAnsiChar, Boolean, ByteEnum usw.



Und warum nicht die meiste RTTI aus, wenn sie fast niegendwo verwendet wird?
Die Objekte/Typen, welche Serialisiert werden sollen, da ist es keinerlei großer Aufwand, wenn die Entwickler das dort gezielt aktivieren.

Aber gut, es war auch schonmal witzig per RTTI bissl durch die IDE zu enumerieren, obwohl dort leider doch bei dem Einen oder Anderen die RTTI deaktiviert wurde.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Feb 2020 um 13:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 7   « Erste     567   


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 01:16 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