Frage

Wie kann ich reduzieren Ressourcen in meiner Anwendung? Ich habe eine Reihe von Tricks versucht, Ich habe zu reduzieren und den Code neu geschrieben, reduzieren Zeilennummer, Reduzieren Sie Kommentare, Komprimierte die endgültige EXE, aber das ist nicht die Art, wie ich gehen möchte, Verbessern Sie den Variablentyp gegossen, Entfernen ICONs, BMP, JPG, aus dem Inneren der Anwendung Ich brauche meine Anwendungen so klein wie möglich auf der endgültigen EXE und im allgemeinen Ressourcenverbrauch zu sein. Noch weitere Ideen, irgendwelche guten Artikel zu diesem Thema Dank

War es hilfreich?

Lösung

Setzen Sie alle Bilder, die das Programm mehr verwendet als einmal in Bildlisten oder TGraphic Komponenten, und die, die in ein Datenmodul setzen. Verknüpfen Sie alle Komponenten diese Glyphen auf die Bildlisten verwenden. Wenn Sie den Objektinspektoren verwenden die gleiche Glyphe auf mehrere Komponenten hinzugefügt werden Sie mit mehreren Kopien davon am Ende, die Erhöhung sowohl Ihre Ladezeit und die ausführbare Datei und Arbeitssatzgröße.

Andere Tipps

Was ist Debug-Informationen Schalten in den Projektoptionen aus:

  • keine Debug-Informationen
  • keine Laufzeitprüfungen
  • reduziert Anzahl der externen Einheiten verwendet, wenn möglich.

Aber Debug-Informationen kan ein wichtiger Killer sein.

Ich würde keine Zeit zu entfernen Kommentare verbringen die Compiler-Streifen sie sowieso

Sie können Ihre Bilder von einem externen Dienstleister (zB Amazon S3)

Referenz

Ein schöner Trick ausführbare Größe zu reduzieren (tatsächlich, PE-Bildgröße, da dies auch zu DLL gilt), wenn Umzug kein Thema ist:

Lassen Sie die Verlagerung-info out!

In Delphi, können Sie es wie dies tun könnte:

// Remove relocation table (generates smaller executables) :
// (See http://hallvards.blogspot.com/2006/09/hack12-create-smaller-exe-files.html)
{$SetPEFlags 1} // 1 = Windows.IMAGE_FILE_RELOCS_STRIPPED

Cheers!

Lassen Sie die VCL und verwenden KOL und MCK: http://kolmck.net/

Dies ist radikal und sehr große Veränderung, aber die exe Größe nach unten bekommen.

Erstellen Sie nicht alle Formulare automatisch, obwohl Delphi haben Sie die Möglichkeit jetzt, und tat dies bedingungslos für neue Formen in früheren Versionen. Nur das Hauptformular erstellen, und verwenden Sie den folgenden (Pseudo-) Code für die Vorführung von modalen Dialogen:

procedure TMainForm.OptionDialog(Sender: TObject);
var
  Dlg: TOptionDialog;
begin
  Dlg := TOptionDialog.Create(nil);
  try
    // prepare dialog
    if Dlg.ShowModal = mrOK then begin
      // apply changed settings
    end;
  finally
    Dlg.Free;
  end;
end;

Dies wird Anwendung Ladezeiten verkürzen und Ihren gesamten Ressourcenverbrauch reduzieren, vor allem für komplexe Dialoge mit vielen Kontrollen.

Messen Sie erstes, DANN optimieren. Wie groß ist Ihre Anwendung, und wie groß würden Sie es gerne?

Sind Sie besorgt über ...

Die Größe der Anwendung Exe-Datei auf der Festplatte? Dann ...

  • Build mit Laufzeit-Packages auf . Hier finden Sie eine kleine .EXE, aber müssen .bpls als auch verteilen.

Der RAM-Speicher von der Anwendung verwendet? Dann ...

  • Build mit Laufzeit-Packages aus -. Der Linker auslassen die meisten nicht verwendeten Teile der Pakete

Die Größe des Anwendungsinstallationsprogramm? Dann ...

  • Build mit Laufzeit-Packages Aus
  • Verwenden Sie Inno Setup
  • Die meisten der oben genannten Vorschläge?

Die Größe der Anwendung PLUS PAKETE / DLLS nach der Installation? Dann ...

  • Build mit Laufzeit-Packages Aus , und verwenden Sie UPX
Project -> Options -> Compiler:
===============================
Optimization ON
Debug Information OFF
Local Symbols OFF
Reference Info OFF
Use debug DCUs OFF

Project -> Options -> Packages:
===============================
Build with runtime packages ON (but you will have to distribute your BPLs!)
Note to non-delphi folks:
a BPL is just a DLL, but with magic Delphi dust to make it easier to use.

Dieser Artikel kann für Sie nützlich sein.

Ist es wirklich wert all diese Probleme? Wir leben nicht in 640 KB Speicher-mal mehr.

Wenn Sie youre EXE kleiner sein dann dynamische Verknüpfung von Paketen und Bibliotheken. Das gibt den größten Teil der Schub. Auch setzen alle Ihre Ressourcen (Bilder, Töne) in separate DLL. Sie werden nichts von Löschen von Kommentaren speichern und schreiben den gesamten Code in einer langen Reihe.

Normalerweise sprechen, wenn Sie eine kleinere EXE Größe wollen dann mit einer früheren Version von Delphi gehen.

Ich benutze immer UPX exe-Dateien zu komprimieren. Es funktioniert perfekt, die oft in einem Faktor 2-Komprimierung führt. Und natürlich, deaktivieren Sie alle Debug-Informationen Dateigröße reduzieren helfen.

Verwenden Sie einen Speicher-Profiler wie einen von Red Gate erhält einen Echtzeit-Einblick in die Laufzeitspeichernutzung.

UPX und ASPack wird eine Menge Ärger, weil Anti-Virus-falsch-positive Alarme erstellen. Kaspersky hat, dass viel!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top