![]() |
Dateigröße reduzieren (Compiler)
Hallo,
ich möchte die Dateigrößen meiner Projekte verringern, oftmals liegen diese bei über 400kb für wenige Zeilen Code. Gibt es dazu irgendwo ein Tutorial oder ein paar gute Tips was man da tun kann? |
Re: Dateigröße reduzieren (Compiler)
Gut 350 KB sind das Grundgerüst der VCL, also aller Komponenten. Die bekommst Du nur weg, wenn Du alles von Hand programmierst.
Stichwort: ![]() ![]() Oder Luckies Webseite unter Tutorials (WinAPI, nonVCL) ...:cat:... |
Re: Dateigröße reduzieren (Compiler)
|
Re: Dateigröße reduzieren (Compiler)
In dem du auf die VCL verzichtest. Wie das geht kannst du hier nachlesen:
![]() Alternativ wären noch Exe-Packer ![]() |
Re: Dateigröße reduzieren (Compiler)
Hallo!!
Soll die Datei klein sein damit man sie gut verschicken kann oder soll die nur zum programmieren oder zum speichern kleiners sein. Wenn du die Datei zum Beispiel zum download angeboten werden soll, kannst du sie ja mit Winrar archivieren. :shock: Geht super hab ich schon ausprobiert!! Kai 8) |
Re: Dateigröße reduzieren (Compiler)
@hitecmaus: Ich denke nicht, dass er das damit gemeint, ich denke, er will das es wenig Arbeitsspeicher verbraucht. (Das Problem hab ich nämlich auch)
Gruß DelphiFreund |
Re: Dateigröße reduzieren (Compiler)
Die Größe der Exe hat nicht unbedingt was mit dem verbrauchten Speicher zu tun. Ich kann auch in einer 16 KB großen nonVCL Exe 1 MB Speicher alloziieren und das war es dann.
|
Re: Dateigröße reduzieren (Compiler)
Zitat:
einem leeren Formular auf 15kb ohne dass du auf die VCL verzichten musst. Nachteile:
|
Re: Dateigröße reduzieren (Compiler)
hallo,
danke für die zahlreichen antworten, momentan geht es mir speziell um die dateigröße meiner dll's die wie schon gesagt über 400kb groß werden und nur ein paar seiten code enthalten von dem packen der dll's halte ich nicht so viel, ich möchte lieber den unnötigen kram aus diesen dateien entfernen ich hab dazu in einer newsgroup folgendes gefunden: Zitat:
vielleicht hab ich auch irgendwo etwas übersehn, aber die dateigröße hat sich nicht wirklich verändert |
Re: Dateigröße reduzieren (Compiler)
je nachdem, was deine dlls machen sollen, wäre nonVCL durchaus ne überlegung wert. an sonsten ist es nicht so einfach, die größe zu verringern
|
Re: Dateigröße reduzieren (Compiler)
Ich hatte mal eine DLL geschrieben, die nur "Windows.pas" used. Die ist klapprige 60k groß. Es kann sich z.T. lohnen (Wenn du Delphi >= Pro. hast) benötigte Funktionen aus z.B. SysUtils herauszukopieren, um diese nicht mit einbinden zu müssen. Bei Klassen und manchen komplexeren Funktionen geht das leider nicht mehr so einfach. Für meine DLL brauchte ich z.B. die Fkt. Trim. Die ließ sich einfach kopieren.
gruss, dizzy |
Re: Dateigröße reduzieren (Compiler)
Also da eine DLL in der Regel keine Formulare enthält, sollte nichts dabei sein, was die DLL dermaßen aufblät. Die SysUtils macht nur ca. 60 KB aus, wenn ich mich nicht täusche. Die wichtigsten Routinen habe ich mir mal alle selber geschrieben und in meiner Toolbox zusammen gefasst - zu finden auf meiner Seite.
|
Re: Dateigröße reduzieren (Compiler)
Die VCL von Hand umzuprogrammieren, lass das mal lieber bleiben. Entweder VCL, oder eben nicht. Wenn Borland etwas intern umbaut, dann kannst du eventuell dein Programm bei einem Update wegschmeißen. Und bei jedem Update mußt du dann wieder die VCL umbauen.
Hierzu habe ich aber eine Frage : Zitat:
|
Re: Dateigröße reduzieren (Compiler)
Wenn man das programm nur mit WinAPI schreibt, kommt man auch auf kleine größe.
Dann kann man noch mit UPX oder ASPack die exe/dll verkleinern und dann passt das schon... |
Re: Dateigröße reduzieren (Compiler)
Zitat:
(wenn Du alles in WinAPI schreiben willst, kannst Du auch gleich ne neue RTL schreiben ;)) |
Re: Dateigröße reduzieren (Compiler)
Zitat:
und das mit WinAPI... ist zwar urst umständig, ist aber machbar |
Re: Dateigröße reduzieren (Compiler)
Mit den Packages, damit sind wohl Laufzeitpackages gemeint @shmia ? Nur was soll ich da rein packen, außer meinen eigenen Komponenten ? Das sind vieleicht 10 Stück. In diesem Zusammenhang noch was : für meine Komponenten existiert keine BPL, warum das ?
|
Re: Dateigröße reduzieren (Compiler)
aber da man mot dlls ja meistens wirklich nicht die gui macht (ja, es gibt ausnahmen), kann man es sich schon mal überlegen, ob man das nicht aus eine größe < 50k runterbekommt...
und um alle zu demotivieren sei nochmal auf kkrieger verwiesen. |
Re: Dateigröße reduzieren (Compiler)
[OT]
Wenn ihr richtig kleine Executables wollt, solltet ihr Assembler lernen! Beispiel: Windows Notepad (Visual C++ 7.0, unter WinXP Pro): 66k Tiny Editor 1.5 (MASM32, basierend auf einer Demo, noch nicht ganz fertig): 7k Beide haben fast die gleichen Funktionen. [/OT] |
Re: Dateigröße reduzieren (Compiler)
es geht doch nur darum unnötiges zeugs in den dateien zu vermeiden,
das hat doch nix mit asm zu tun :roll: |
Re: Dateigröße reduzieren (Compiler)
Zitat:
|
Re: Dateigröße reduzieren (Compiler)
Zitat:
Dazu eines der Projekte öffnen und in den Projektoptionen auf Seite Packages das Häckchen bei Laufzeit-Packages setzen und neu erzeugen. Darunter im Editfeld stehen die Packages, die eingebunden werden. Dort haben sich aber mit der Zeit Packages angesammelt, die du für deine Projekte nicht benötigst. Aber Besten kopierst du den ganzen String in eine Testdatei als Merkhilfe. Dann benützt du nur die VCL70 und VCLX70 für alle Projekte. Stück für Stück fügst du dann neue Packages hinzu. Gut dokumentieren, denn diese Packages musst du mitliefern. |
Re: Dateigröße reduzieren (Compiler)
Frage: Woher weiß ich, welche Packages ich benötige?
Denn VCL70 z.B. sagt mir nicht besonders viel über dessen Funktion. |
Re: Dateigröße reduzieren (Compiler)
VCL70 bedeutet, dass dort die Units Controls, Forms, Graphics, StdCtrls, ExtCtrls, ... und alle anderen Units, die die VCL bilden, enthalten sind. Die VCL70.BPL Datei benötigt aber zusätzlich die RTL70.BPL, die so Units wie SysUtils, Classes, Math, ... enthält.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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 by Thomas Breitkreuz