Announcement

Collapse
No announcement yet.

exe von delphi 4 projekt für meinen geschmack zu groß

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • exe von delphi 4 projekt für meinen geschmack zu groß

    tagchen,

    ich programmiere mit delphi 4 einen html-editor und kann nicht behaupten,<br>
    daß ich viel quellcode geschrieben habe oder große bilder drin habe.<br>
    dennoch ist die exe schon 800kbyte groß!!!!!!!<br>
    woran kann das liegen???????????

    mfg

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo Markus,

    die Frage, ob Grafiken oder andere Ressourcen Anteil an der grossen Dateigrösse haben, beantwortet ein Blick auf die DFM- und RES-Dateien im Projektverzeichnis.

    Je mehr Komponenten,Klassen und Units im Projekt verwendet werden, umso grösser wird auch der Footprint (manche sagen Ballast dazu), der vom Compiler in die EXE gelinkt werden muss. Irgendwo müssen die Klassen und Komponenten ja abgelegt werden. Nur dann, wenn das Projekt mit <b>Runtime-Packages</b> compiliert wird, entspricht die Dateigrösse der EXE den eigenen Programmzeilen (Ressourcen).
    &#10

    Comment


    • #3
      tag andreas,

      was heißt <b>Runtime-Packages</b>? es ist halt so:<br>
      mein html-editor hat 2 fenster. und die exe ist 600kb groß.<br>
      meine bauabrechnung im geschäft hat 88 fenster und die exe ist 3 mb groß!<br>
      das verhältnis stimmt irgendwie nicht ganz! muß doch mal schauen ob ich irgendeine<br>
      große grafik drin habe die <b>gestretched</b> wird.<br>
      weil das kann ja nicht sein. siehst du das auch so?

      mfg

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        Hallo Markus,

        grundsätzlich muß man sagen, daß ein Delphi-Projekt welche kein Runtime-Packages benutzt erst mal ein gewisse Größe hat, welche von Delphi-Version zu Delphi-Version Aufgrund der erweiterten Möglichkeiten zunimmt. Für jedes kleine Delphi-Programm welches die VCL-Benutzt (TForm, TButton, ...) muß der Compiler erst mal den gesammten Code der VCL zum Projekt kompilieren (z.B. bei TForm, TCustomForm, TWInControl, ...) das macht auch beim einfachsten Hello World-Programm ca. 300 kByte (282 kByte bei D4) aus. Legst Du alle Komponenten des "Standard"-Reiters auf ein einfaches Formular so werden daraus schon 338 kByte) ohne eine eigene Codezeile und mit Datenbank (BDE) bist Du schon bei 528 kByte.

        Dieser Basiscode der Komponenten wird jedoch nur <b>einmal</b> zum Projekt gelinkt, auch wenn Du die einzelnen Komponenten 1000 mal in deinem Projekt benutzt.

        Kleine Überschlagsrechnung:
        In deinem "kleinen" Programm macht der Komponentencode ca. 500 kByte aus -> 100 kByte für eigenen Code.<br>
        Im "großen" Programm macht der Komponentencode ca. 1,5 MByte aus -> 1,5 MByte für eigenen Code.

        Also ist das Verhältnis zwischen kleinem und großen Programm was die Vergrößerung der Programm-Exe durch eigenen Code betrifft gar nicht mehr so unterschiedlich

        Comment


        • #5
          und das ist halt so, da gibt es keine tricks?
          wenn ich mir vorstelle, daß ein popeliger html-editor 600kbyte groß ist, da wird mir ganz schumrig.<br>
          das projekt dürfte eigentlich 300kbyte groß sein.

          naja, so ist das leben.

          mfg

          marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            Falls Du wie schon Andreas vorgeschlagen hat, Laufzeit-Packages benutzt wird dein Programm (Exe) vielleicht 150 kByte groß sein. Jedoch mußt Du dann die Packages von Delphi mit Verteilen (ca. 2-4 MByte je nach benutzten Komponenten).

            Dies wird nicht nur bei Delphi so gehandhabt, sondern z.B. bei Visual C++ auch. Dort gibt es z.B. die DLL's Msvcrt40.dll, Mfc40, ... (für Visual C++ 4.0) welche zwar die Exe kleiner machen, aber im Windows-Systemverzeichnis sich breit machen!

            Also entweder große Exe und dafür nur eine Datei oder Laufzeitpackages mit kleiner Exe und mehreren Dateien, welche jedoch zusammen genommen größer sind als deine eine Exe

            Comment


            • #7
              tag bernhard,

              da ist mir große exe und dafür eine datei lieber! was ich aber testweise probieren will, was passiert wenn ich<br>
              das projekt unter delphi 2 compiliere!!

              mfg

              marku
              Herzliche Grüße

              Markus Lemcke
              barrierefreies Webdesign

              Comment


              • #8
                Hallo Markus,

                die Sache mit der EXE-Größe ist ganz einfach: <br>
                a) "fauler" Entwickler -> grosse EXE <br>
                b) "fleissiger" Entwickler -> sehr kleine EXE

                In meinem Buch <b>Delphi Win32-Lösungen</b> stelle ich auf der Seite 4 ein mit Delphi 5 entwickeltes Programm vor, das trotz Fenster, Menü und Dialog und <b>ohne</b> Runtime-Packages nur <b>44 kByte</b> EXE-Grösse hat. Diese EXE ist völlig allein lauffähig und benötigt keine zusätzlichen DLLs. Der Haken an der Sache liegt darin, das ich hier völlig auf die VCL verzichtet habe - das Programm wurde in der klassischen Win32-API-Programmierung geschrieben (also so, wie es bei Turbo Pascal für Windows noch üblich war). Mit dem Verzicht auf die Bequemlichkeiten der VCL und der visuellen Entwicklung (daher auch mein Begriff "fauler" Entwickler) erreicht man die kleinste Datei. Aber niemand wird diesen Aufwand heute noch treiben, wenn es dafür nicht wirklich einen triftigen Grund gibt.

                P.S: Die EXE-Größe von Delphi passt sich nur der üblichen Festplattengrösse und der Arbeitsspeicher-Ausstattung der heutigen Rechner an ;-

                Comment


                • #9
                  tag andreas,<br>

                  es ist immer höchst <b>amüsant</b> deine kommentare zu lesen. also dann bin ich halt ein<br>
                  <b>fauler</b> entwickler und lebe mit einer großen exe. mir ist es halt aufgefallen, daß die<br>
                  exe für das bißchen programmcode ziemlich "aufgeblasen" ist.<br>

                  mfg

                  marku
                  Herzliche Grüße

                  Markus Lemcke
                  barrierefreies Webdesign

                  Comment

                  Working...
                  X