Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Lazarus, EXE groß (https://www.delphipraxis.net/170853-lazarus-exe-gross.html)

Lyan 5. Okt 2012 23:05

Delphi-Version: 5

Lazarus, EXE groß
 
Hallo,

wie kommt es, dass trotz richtiger Compilereinstellungen (Linker) eine leere ConsoleAPP

Delphi-Quellcode:
program project1;

begin

end.
eien Filesize von 55kb hat? Das geht mir nicht in den Kopf, unter C sinds 6kb.

himitsu 5. Okt 2012 23:13

AW: Lazarus, EXE groß
 
Hast du mal die Debuginfos abgeschaltet?


In Delphi (XE3):
Delphi-Quellcode:
program Project11;

{$APPTYPE CONSOLE}

begin

end.
Debug: 160 KB
Release: 21 KB

Aber ganz im Ernst ... wen interessieren schon die paar Bytes.

Uwe Raabe 5. Okt 2012 23:51

AW: Lazarus, EXE groß
 
Zitat:

Zitat von Lyan (Beitrag 1185975)
unter C sinds 6kb.

Aber mit wahrscheinlich 100x sovielen Buffer Overruns...

ThomasBab 6. Okt 2012 06:35

AW: Lazarus, EXE groß
 
Hallo!

Hier http://wiki.lazarus.freepascal.org/Size_Matters/de gibt es eine Info dazu.

Lyan 6. Okt 2012 11:50

AW: Lazarus, EXE groß
 
Folgende Anwendung:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  showmessage('64-Bit');
end;

end.
hat... 13,9 MB!!!! (Mit Smartlinken und ohne debug infos)!

Naja Lazarus erstmal deinstallieren. Mir ging es nur um 64-Bit, aber dann ists mir egal, dann lieber Delphi 7 und dafür 14kb (9kb mit upx).

himitsu 6. Okt 2012 12:04

AW: Lazarus, EXE groß
 
Also der Vergleich mit Delphi 7 ist auch nicht ganz fair.

Delphi-VCL + Win64 + klein bissl Code:
12,1 MB = Debug-Build
3,3 MB = Release-Build
2,7 MB = Release-Build + RTTI deaktiviert

Uwe Raabe 6. Okt 2012 12:16

AW: Lazarus, EXE groß
 
Zitat:

Zitat von Lyan (Beitrag 1185989)
dann lieber Delphi 7 und dafür 14kb (9kb mit upx).

Warum dann nicht gleich handoptimierter Assembler-Code?

JamesTKirk 6. Okt 2012 12:28

AW: Lazarus, EXE groß
 
Zitat:

Zitat von Lyan (Beitrag 1185975)
Hallo,

wie kommt es, dass trotz richtiger Compilereinstellungen (Linker) eine leere ConsoleAPP

Delphi-Quellcode:
program project1;

begin

end.
eien Filesize von 55kb hat? Das geht mir nicht in den Kopf, unter C sinds 6kb.

Du bist dir bewusst, dass du hier Äpfel mit Birnen vergleichst? Unter C hast du die ganze Runtime in DLLs (oder das entsprechende Äquivalent unter anderen Betriebssystemen) und in Delphi/Free Pascal hast du die Runtime in der Anwendung drin. Link mal dein C Programm statisch und dann vergleich mal die Größen. Das ist dann um einiges fairer.

Zitat:

Zitat von Lyan (Beitrag 1185989)
Folgende Anwendung:

(snip)

hat... 13,9 MB!!!! (Mit Smartlinken und ohne debug infos)!

Naja Lazarus erstmal deinstallieren. Mir ging es nur um 64-Bit, aber dann ists mir egal, dann lieber Delphi 7 und dafür 14kb (9kb mit upx).

Du musst noch "Debugger Informationen aus der ausführbaren Datei entfernen (-Xs)" aktivieren, dann kommst du auf circa 3 MB. Allzu viel kleiner geht nicht, da die LCL ja die darunterliegende Plattform abstrahieren muss ( => zusätzlicher Code). Aber die Größe steigt dann nur noch leicht an, wenn du weiteren Code/weitere Formulare hinzufügst.

Gruß,
Sven

Bernhard Geyer 6. Okt 2012 12:35

AW: Lazarus, EXE groß
 
Zitat:

Zitat von JamesTKirk (Beitrag 1185994)
Du musst noch "Debugger Informationen aus der ausführbaren Datei entfernen (-Xs)" aktivieren, dann kommst du auf circa 3 MB. ...

Ich glaube diesen Fehler machen viele Lazarus-Anfänger. Wieso kann man diese Option nicht automatisch an die Option "Ohne Debug-Infos" binden?

JamesTKirk 6. Okt 2012 14:44

AW: Lazarus, EXE groß
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1185995)
Zitat:

Zitat von JamesTKirk (Beitrag 1185994)
Du musst noch "Debugger Informationen aus der ausführbaren Datei entfernen (-Xs)" aktivieren, dann kommst du auf circa 3 MB. ...

Ich glaube diesen Fehler machen viele Lazarus-Anfänger. Wieso kann man diese Option nicht automatisch an die Option "Ohne Debug-Infos" binden?

Die Option heißt aber nicht "ohne Debug-Infos". Die Option heißt "Debug Informationen generieren" und greift nur auf das aktuelle Projekt, nicht aber auf die verwendeten Packages. Und hier ist die LCL das Package, welches den ganzen Wust an Debug Informationen mitbringt. "-Xs" sorgt dann einfach nur dafür, dass ganz einfach gar keine Debug Informationen (von welcher Unit sie auch kommen) eingebunden werden.

Gruß,
Sven


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.
Seite 1 von 3  1 23      

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