AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lazarus, EXE groß

Ein Thema von Lyan · begonnen am 5. Okt 2012 · letzter Beitrag vom 7. Okt 2012
Antwort Antwort
Seite 1 von 3  1 23      
Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#1

Lazarus, EXE groß

  Alt 5. Okt 2012, 23:05
Delphi-Version: 5
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Lazarus, EXE groß

  Alt 5. Okt 2012, 23:13
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Okt 2012 um 23:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Lazarus, EXE groß

  Alt 5. Okt 2012, 23:51
unter C sinds 6kb.
Aber mit wahrscheinlich 100x sovielen Buffer Overruns...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ThomasBab

Registriert seit: 7. Mai 2007
Ort: Hallenberg
57 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 06:35
Hallo!

Hier http://wiki.lazarus.freepascal.org/Size_Matters/de gibt es eine Info dazu.
Thomas
  Mit Zitat antworten Zitat
Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#5

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 11:50
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).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 12:04
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 12:16
dann lieber Delphi 7 und dafür 14kb (9kb mit upx).
Warum dann nicht gleich handoptimierter Assembler-Code?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 12:28
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.

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
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 12:35
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?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Lazarus, EXE groß

  Alt 6. Okt 2012, 14:44
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
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 16:20 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