Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Warum wird die Ressource verändert?

  Alt 23. Dez 2020, 15:40
Diese Compilerswitches bringen nicht wirklich was, weil diese nur auf den eigenen Code Auswirkung hat. Um das ganze RTTI Zeugs in dene Basis Units zu entfernen, müsste die Delphi Basisklassen (System, Classes, etc) neu ohne RTTI kompiliert werden. Das geht aber nicht so einfach, wie man meinen könnte. Eigentlch ist das unmöglich, weil man die System untis nicht neu konmpilieren kann.

OP du kannst ja mal folgende Switsches verwenden, wird dir aber wegen obigen Gründen auch nicht wirklich weiterhelfen.
Code:
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
Habe ich schon drin siehe Code oben.
Na bringt max 200 KB.

Ich wollte nur sagen das es mich nervt.
Wenn es nicht anders abschaltbar ist dann ist gut.
Aber trotz alle dem es geht auch anders.
Ja hast deine Nachricht nach meiner geschrieben. Übrigens hat die Grösse der EXE praktisch nichts mit den Resourecen zu tun. Das was bei dir in den Resourcen ist, sind Formen (DFM-Daten die als Resoruce reingelinkt werden) aus der Basisbibliothek von Delphi. Diese machen aber dein Progamm nicht wirklich massiv grösser. Das Problem ist die RTTI, die bei allen Delphi Basisklassen mit reinkompiliert wurden. Um das zu umgehen. müsstest du alle Delphi DCS's neu durchkompileren und bei allen die RTTI Flags setzen. Das geht aber leider nut therotisch und in der Praxis ist das praktisch unmöglich. Wollte das selber schon mal machen und habe dann aber relativ schnell aufgegeben.

Eben mal getestet:
Eine minimale Consolenapp, die nur die SysUtils nutzt, ist nun mit aktuellen Delphi's im Release Build um die 150 KB. Bei D7 wird eine leere Consoleapp 41 KB gross. Sobald du da bestimmte Untis verwendest explodiert das und du hast dann >2 MB. In deinem Fall sind die Untis Clipprd, Printers und IOUtils dafür verantwortlich.

Hats du deine exe mit dem Release Build kompiliert oder nur mit Debug?

Geändert von Rolf Frei (23. Dez 2020 um 15:44 Uhr)
  Mit Zitat antworten Zitat