AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Einfluß auf die Größe der EXE-Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

Einfluß auf die Größe der EXE-Dateien

Ein Thema von kwhk · begonnen am 20. Jan 2017 · letzter Beitrag vom 21. Jan 2017
Antwort Antwort
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#1

Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 13:35
Hallo,
ich habe ein paar meine Oldi-Programme überarbeitet, damit sie auch unter Windows 10 laufen. Mal ein kleines Beispiel, mein Programm DateTime. Wenn man das in einem CMD-Fenster aufruft, dann werden Datum und Uhrzeit protokolliert, danach wird das Programm beendet.
Code:
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. Alle Rechte vorbehalten.

D:\Delphi10RAD\HK\DateTime>datetime
-------- Datum: 20.01.2017  ---  Tag: Freitag ------  Zeit: 13:27:18 ---------
Die erste Version habe ich vor vielen Jahren mit TASM gemacht, da wurde eine DateTime.COM erstellt, die war 381 Bytes lang.

Dann habe ich dieses Programm mit Delphi 3,5,6,7 gemacht. Mit Delphi 7 wird eine DateTime.exe erstellt, die ist 372.736 Bytes lang.

Nun habe ich mit RAD Studio 10.1 Berlin das gleiche Programm erzeugt (gleicher Source-Code wie bei Delphi 7), da wächst das Programm auf 2.153.984 Bytes.

Einen ähnlichen Effekt habe ich auch bei anderen Programmen bemerkt. EXE aus RAD-Studio 10.1 Berlin haben eine vielfache Dateigröße gegenüber der EXE-Dateien aus Delphi 7.

Habe ich da bei DEBUG o.ä. etwas nicht richtig eingestellt ?
DEBUG kann ich auch mit Delphi 7 machen.
Hartmut

Geändert von kwhk (20. Jan 2017 um 13:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 13:46
Es ist in den RTL- und VCL-Units eben sehr viel an Funktionalität dazugekommen, die der Linker nicht immer automatisch weglassen kann.

Man kann einiges aus den Exen entfernen, z.B. die RTTI Informationen, aber ganz klein ist es trotzdem nicht.

Eine minimale Kommandozeilenanwendung ist in Delphi 10.1 ca. 43 KiB groß. Mit System.SysUtils sind es dann schon 136 KiB. Mit DateUtils sind es dann 521 KiB.

Deine Exe-Größe lässt mich aber vermuten, dass du Vcl.Forms oder andere VCL-Units eingebunden hast. Denn erst damit kommt man sofort über 2 MiB (in der Release-Buildkonfiguration!). Oder du hast noch die Debug-Buildkonfiguration aktiv.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 14:26
Es ist eine Konsolenanwendung. Ich hänge die mal als ZIP an, falls es interessiert. Für Hinweise wäre ich wirklich dankbar.
Angehängte Dateien
Dateityp: zip HexList.zip (1,57 MB, 9x aufgerufen)
Hartmut

Geändert von kwhk (20. Jan 2017 um 14:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 14:30
Eigentlich wollte ich das kleinere Trivial-Programm DateTime anhängen
Angehängte Dateien
Dateityp: zip DateTime.zip (827,7 KB, 13x aufgerufen)
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 15:02
Es ist eine Konsolenanwendung.
Nö. In der DateTime.dpr sowie der DateTimeU.pas sieht man TForm1, uses Forms usw. Es ist also keine Konsolenanwendung, die auch als solche erstellt worden wäre.

Grüße
Dalai
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#6

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 15:06
Konsolenanwendung Beispiel: http://docwiki.embarcadero.com/RADSt...lenanwendungen
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#7

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 15:11
141 kB mit XE7
Delphi-Quellcode:
program Project1; //20170120

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

Var
  DatumZeit : TDateTime;
  ZeitDatum : TDateTime;
  DatumS : String; // "tt.mm.jjjj"
  ZeitS : String;
  WoTgNr : Integer;
  TageS : Array[1..7] of String;
  Meldung : String;

begin
  try
  DatumS := 'tt.mm.jjjj';

  TageS[1] := 'Sonntag ---'; // je 12 Bytes
  TageS[2] := 'Montag ----';
  TageS[3] := 'Dienstag --';
  TageS[4] := 'Mittwoch --';
  TageS[5] := 'Donnerstag ';
  TageS[6] := 'Freitag ---';
  TageS[7] := 'Sonnabend -';

  DatumZeit := Date;
  ZeitDatum := Time;
  DatumS := DateToStr(DatumZeit);
  ZeitS := TimeToStr(ZeitDatum);
  WoTgNr := DayOfWeek(DatumZeit);

  Meldung := '-------- Datum: '+DatumS+' --- Tag: '+TageS[WoTgNr]+'--- Zeit: '+ZeitS+' ---------'+#$07+#$0D+#$0A;

  WriteLn(Meldung);
  ReadLn; // eingefügt für Test

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Angehängte Dateien
Dateityp: zip DTtest.zip (60,7 KB, 3x aufgerufen)

Geändert von t.roller (20. Jan 2017 um 15:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#8

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 20. Jan 2017, 17:41
Als richtige Konsolenanwendung komme ich unter Berlin auf 145.920 Byte.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 21. Jan 2017, 09:58
Ich bedanke mich für Eure Antworten. Mein Fehler war es offenbar, davon auszugehen, wenn man {$APPTYPE CONSOLE} einfügt, dass es damit eine Konsolenanwendung ist. Vom Ergebnis her ist es das ja auch.
Nun habe ich noch als Release compiliert - da ist die EXE nur noch halb so groß, wie bei D7 = 145.408 Bytes.

Ich habe einfach das D7-Projekt in D10 übernommen und die D7.dpr geöffnet, was ja auch funktioniert. Den Rest hat D10 gemacht.
Nun habe ich mit D10 eine leer Konsolenanwendung erstellt und in diese die PGM-Teile eingefügt - so ist es natürlich korrekter, macht aber etwas mehr Arbeit.

Nochmals vielen Dank.

---------- Ergänzung

Ich habe nun unter D7 auch noch einmal ein richtiges korrektes Konsolen-Projekt erstellt und neu compiliert. Da ist die EXE nur noch 47.616 Bytes groß.
Hartmut

Geändert von kwhk (21. Jan 2017 um 10:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Einfluß auf die Größe der EXE-Dateien

  Alt 21. Jan 2017, 13:45
Vielleicht interessant dazu, mein Blog Post ueber Delphi Console Applications von 2014 (aber immernoch aktuell):

https://blog.dummzeuch.de/2014/04/10...-applications/
Thomas Mueller
  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 04:14 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