AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein RTTI abschalten oder minimieren - HowTo ?
Thema durchsuchen
Ansicht
Themen-Optionen

RTTI abschalten oder minimieren - HowTo ?

Ein Thema von paule32.jk · begonnen am 7. Aug 2024 · letzter Beitrag vom 9. Aug 2024
Antwort Antwort
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
371 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 12:17
okay.

Ich habe mal ein wenig mit den Projekt-Optionen gespielt, und bin dann auf "Linken mit Laufzeitpackages" gestoßen.
Dabei viel mir auf, das die Option für den DCE 12 Linker auf FALSE eingestellt war, und ich somit angenommen habe,
das da keine Laufzeitpackages mit in die EXE einfließen würden.

Wenn ich das Option-Kästchen auf TRUE setze, dann wird die EXE um einiges kleiner.
Da bin ich nun von knapp 350 KB, auf stolze 25 KB gekommen.

Das ist irgendwie verwirrend die ganze Sache...

Aber was die Größe anbelangt, bin ich durchaus zufrieden.
Wenn ich dann noch UPX.exe über die 25 KB loslasse, dann bin ich bei ca. 10 KB zu Hause,
was auch schon eine beachtlich kleine Anwendung darstellt.

Im Image habe ich dann nach bpl gesucht, aber ich konnte noch keine finden, was mich zu der
Annahme verleitet, das die RunTime Funktionen von Delphi nicht immer übernommen werden und
erst bei Gebrauch gelinkt werden, womit ich auch zufrieden bin.

Die Verringerrung des Icons brachte auch ein paar kleine Unterschiede in punkto Größe.
Es kann also heißem:
stay tuned ...
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
731 Beiträge
 
Delphi 12 Athens
 
#2

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 12:30
okay.

Ich habe mal ein wenig mit den Projekt-Optionen gespielt, und bin dann auf "Linken mit Laufzeitpackages" gestoßen.
Dabei viel mir auf, das die Option für den DCE 12 Linker auf FALSE eingestellt war, und ich somit angenommen habe,
das da keine Laufzeitpackages mit in die EXE einfließen würden.

Wenn ich das Option-Kästchen auf TRUE setze, dann wird die EXE um einiges kleiner.
Da bin ich nun von knapp 350 KB, auf stolze 25 KB gekommen.

Das ist irgendwie verwirrend die ganze Sache...

Aber was die Größe anbelangt, bin ich durchaus zufrieden.
Wenn ich dann noch UPX.exe über die 25 KB loslasse, dann bin ich bei ca. 10 KB zu Hause,
was auch schon eine beachtlich kleine Anwendung darstellt.

Im Image habe ich dann nach bpl gesucht, aber ich konnte noch keine finden, was mich zu der
Annahme verleitet, das die RunTime Funktionen von Delphi nicht immer übernommen werden und
erst bei Gebrauch gelinkt werden, womit ich auch zufrieden bin.

Die Verringerrung des Icons brachte auch ein paar kleine Unterschiede in punkto Größe.
Es kann also heißem:
stay tuned ...
Wenn Du ein Projekt mit runtime-packages baust erfordert die EXE einen Haufen BPLs, für die Delphi RTL, VCL, FMX, was immer Du auch verwendest. Auf dem Entwicklungsrechner sind die alle vorhanden, aber wenn Du die EXE auf einen anderen Rechner kopierst läuft sie dort nicht. Du mußt dann alle notwendigen BPLs mit kopieren. Im Allgemeinen ist die Summe der Größen aller notwendigen Dateien deutlich größer als die der monolitischen EXE ohne packages.
Packages machen nur Sinn für umfangreiche Projekte aus vielen Modulen (EXEs), die sich viele Packages teilen. Dann kann die Größe der Distribution dadurch kleiner werden, aber die Installation wird komplexer. BPLs = Embas Version der DLL Hell.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
715 Beiträge
 
Delphi 12 Athens
 
#3

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 12:31
Wenn ich das Option-Kästchen auf TRUE setze, dann wird die EXE um einiges kleiner.
Da bin ich nun von knapp 350 KB, auf stolze 25 KB gekommen.

Das ist irgendwie verwirrend die ganze Sache...

Aber was die Größe anbelangt, bin ich durchaus zufrieden.
Wenn ich dann noch UPX.exe über die 25 KB loslasse, dann bin ich bei ca. 10 KB zu Hause,
was auch schon eine beachtlich kleine Anwendung darstellt.

Die Verringerrung des Icons brachte auch ein paar kleine Unterschiede in punkto Größe.
Ob das File 350 kB gross ist oder nur 10 kB ist eigentlich egal, in beiden Fällen ist die Datei Grösse deutlich kleiner als die Cluster Grösse - Sprich, ich spare schlussendlich nichts ein.

Meine Erfahrung mit kleinen Files ist aktuell, dass mein Virenscanner anspricht. UPX unterstützt noch das Misstrauen des Virenscanners.

Und ja, je grösser das Bild umso stärker ist die Gewichtung bei kleinen Files.
Roland
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
391 Beiträge
 
Delphi 12 Athens
 
#4

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 12:47
Ob das File 350 kB gross ist oder nur 10 kB ist eigentlich egal, in beiden Fällen ist die Datei Grösse deutlich kleiner als die Cluster Grösse - Sprich, ich spare schlussendlich nichts ein.
Na ja, die default-Clustergröße bei NTFS, und das haben die meisten Windowsentwickler auf ihrer Festplatte/SSD, ist bestimmt nicht 350kb groß...
Die liegt bei Festplatten bis 16 TByte bei 4kb
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
371 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 13:10
nu.
- er meint sicherlich Sektor-Größe - die ist Standard 4.096 Bytes oder 4 KB groß.
- selbst mit Assembler habe ich keine gültige Windows .EXE programmieren können, die kleiner als 2.048 Bytes ist.

Man muss halt abwiegen:
- viele Dateien kleinere, kleine Sektor-Größe
- wenige Dateien größere Dateien, größere Sektor-Größe...

Ok, zurück:
Ich habe jetzt aus dem Verzeichnis:
C:\Program Files (x86)\Embarcadero\Studio\23.0\bin

- die rtl290.bpl in das Verzeichnis meiner "kleinen" Ausgabedatei kopiert
- vorher hat Windows gemekkert, das rtl290.bpl nicht auffindbar ist
- nun bekomme ich den Fehler 0x0007b - was auf ein Image-Fehler hindeutet
- die rtl290.bpl ist rund 12 MegaByte groß
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 17:25
So kleine Dateien landen bei NTFS eh in der MFT, als Attribut am Datensatz, und nicht in einem eigenen Sector Cluster auf der Platte. (falls ich das richig verstanden hatte)

Das Meiste spart man ein, wenn einfach nur die Debuginfos nicht gelinkt werden. (RELEASE)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
371 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 17:42
ja, richtig: RELEASE.
Aber mich würde doch schonmal interessieren, warum da ein 0x007b Fehler kommt, wenn man die RT Pakete nicht mit einlinkt...
Wie der Peter schon schrieb, macht das ja auch irgendwann oder irgendwie Sinn.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
371 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: RTTI abschalten oder minimieren - HowTo ?

  Alt 8. Aug 2024, 19:07
ok.
ich habe es jetzt hindeicseln können:
in den Optionen:
- RELEASE
- ohne Packages (TRUE)
- Optimize

dann eine Batch-Datei (run.bat):

Code:
@echo off
set BDS=C:\Program Files (x86)\Embarcadero\Studio\23.0
set BDSINCLUDE=C:\Program Files (x86)\Embarcadero\Studio\23.0\include
set BDSCOMMONDIR=C:\Users\Public\Documents\Embarcadero\Studio\23.0
set FrameworkDir=C:\Windows\Microsoft.NET\Framework\v4.0.30319
set FrameworkVersion=v4.5
set FrameworkSDKDir=
set PATH=%FrameworkDir%;%FrameworkSDKDir%;C:\Program Files (x86)\Embarcadero\Studio\23.0\bin;C:\Program Files (x86)\Embarcadero\Studio\23.0\bin64;C:\Program Files (x86)\Embarcadero\Studio\23.0\cmake;%PATH%
set LANGDIR=DE
set PLATFORM=
set PlatformSDK=

.\win64\Release\<das programm.exe>
und der 0x007b Fehler fly away...

wenn ich nun auch noch upx.exe auf die bestehende DLL und die Startanwendung (EXE) losjage, dann bin ich bei 21 KB zu Hause.
Somit: Fall gelöst.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz