Frage

Ich habe in letzter Zeit Delphi XE verwendet, aber die Exe -Größe ist wegen RTTI sehr groß (ich denke)

Howa to RTTI entfernen, und kann ich meine Anwendungsgröße so klein wie Delphi 2009 -Anwendung (490 kb) ohne Komprinsion machen; und wie nutzt RTTI

War es hilfreich?

Lösung

Kurz gesagt (vollständige Geschichte, die durch Links in der Antwort des Splash bereitgestellt wird):

{$ Rtti explizite Methoden ([]) Eigenschaften ([]) Felder ([])}

Beachten Sie, dass Ab XE6 und neuer muss dies in jeder einzelnen Einheit sein, für die Sie RTTI deaktivieren möchten. Zuvor kann es in der DVR -Datei sein und gilt für alle Einheiten im Projekt.

Andere Tipps

Ihr Problem hängt nicht mit RTTI zusammen. Wenn Sie über einen relativ geringen Anstieg (100-200K) sprechen, ist dies auf zusätzliche Funktionen in RTL zurückzuführen (hinzugefügt für Unicode-Unterstützung usw.). Wenn Sie oder so 500-700K erhöhen, prüfen Sie, ob Sie VCL-UI-Einheiten (Formulare, Steuerelemente usw.) verknüpfen. Wenn Sie 3 MB erhöhen, haben Sie zusätzliche Debug -Symbole eingeschaltet.

Dies liegt daran, dass SYS -Einheiten einige Generika -Funktionen hinzugefügt wurden. Generika wurden 2009 hinzugefügt, aber in Systemeinheiten wurden einige Klassen mit Generika in XE und XE2 umgeschrieben. meiner bescheidenen Meinung nach

Fügen Sie dieses Flaggen hinzu, um die Größe zu verringern In DPR -Datei (Projekt> Quelle anzeigen) zu jeder einzelnen Einheit (ab XE5)*.

{$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or
 IMAGE_FILE_LOCAL_SYMS_STRIPPED OR IMAGE_FILE_RELOCS_STRIPPED}

{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

(*) Beachten Sie, dass Ab XE5 und neuer muss dies in jeder einzelnen Einheit sein, für die Sie RTTI deaktivieren möchten. Zuvor kann es in der DVR -Datei sein und gilt für alle Einheiten im Projekt.

Ich denke nicht, dass es RTTI ist, was Ihrer Anwendung so viel Größenaufwand verleiht. Woher weißt du, dass es ist?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top