Question

Comment puis-je réduire les ressources au sein de mon application? J'ai essayé plusieurs astuces J'ai réduire et réécrire le code, réduire le numéro de ligne, Réduire les commentaires, Compressé l'EXE final, mais ce n'est pas comme ça que je veux aller, Améliorer la distribution de type variable, Supprimer les icônes, BMP, JPG de l'intérieur de l'application J'ai besoin que mes applications soient aussi petites que possible sur le fichier EXE final et, en général, sur la consommation de ressources. Plus d'idées, de bons articles sur ce sujet Merci

Était-ce utile?

La solution

Placez les images que le programme utilise plus d'une fois dans des listes d'images ou des composants TGraphic, puis insérez-les dans un module de données. Liez tous vos composants utilisant ces glyphes aux listes d'images. Si vous utilisez l'inspecteur d'objets pour ajouter le même glyphe à plusieurs composants, vous en obtiendrez plusieurs copies, ce qui augmentera votre temps de chargement et la taille de votre exécutable et de votre jeu de travail.

Autres conseils

Qu'en est-il de la désactivation des informations de débogage dans les options du projet:

  • aucune information de débogage
  • pas de vérification d'exécution
  • réduisez si possible le nombre d'unités externes utilisées.

Mais les informations de débogage peuvent être un tueur majeur.

Je ne voudrais pas perdre de temps à supprimer les commentaires du compilateur les supprime quand même

Vous pouvez référencer vos images à partir d'un service externe (par exemple, Amazon S3)

Un bon truc pour réduire la taille des exécutables (en fait, la taille des images PE, comme cela s'applique également aux DLL), lorsque relocalisation n'est pas un problème:

Laissez les informations de relocalisation dehors!

Dans Delphi, vous pouvez le faire comme ceci:

// 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

Salut!

Supprimez la VCL et utilisez KOL et MCK: http://kolmck.net/

C'est un changement radical et très important, mais la taille de l'exe sera réduite.

Ne créez pas automatiquement tous les formulaires, même si Delphi vous en donne la possibilité maintenant et de manière inconditionnelle pour les nouveaux formulaires des versions antérieures. Créez uniquement le formulaire principal et utilisez le code (pseudo) suivant pour afficher les dialogues modaux:

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;

Cela réduira le temps de chargement des applications et votre utilisation globale des ressources, en particulier pour les dialogues complexes comportant de nombreux contrôles.

Mesurez d'abord, puis optimisez. Quelle est la taille de votre demande et quelle serait sa taille?

Êtes-vous préoccupé par ...

La taille du fichier .EXE de l'application sur le disque? Alors ...

  • Générez des packages d'exécution sur . Vous obtiendrez un petit fichier .exe, mais vous devrez également distribuer des fichiers .bpl.

La mémoire RAM utilisée par l'application? Alors ...

  • Construire avec les packages d'exécution désactivés - l'éditeur de liens omettra les parties les plus inutilisées des packages.

La taille du programme d'installation de l'application? Alors ...

  • Construire avec des packages d'exécution désactivés
  • Utiliser Inno Setup
  • La plupart des suggestions ci-dessus?

La taille de l'application PLUS PACKAGES / DLLS après l'installation? Alors ...

  • Générez des packages d'exécution hors et utilisez 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.

Cet article peut vous être utile.

Est-ce que cela vaut vraiment tout ce problème? Nous ne vivons plus dans des délais de mémoire de 640 Ko.

Si vous voulez que votre fichier EXE soit plus petit, utilisez la liaison dynamique des paquets et des bibliothèques. Cela donne l'essentiel de l'impulsion. Mettez également toutes vos ressources (images, sons) dans une DLL séparée. Vous ne sauvegarderez rien en supprimant des commentaires et en écrivant tout votre code sur une longue ligne.

Généralement, si vous voulez une taille EXE plus petite, utilisez une version antérieure de Delphi.

J'utilise toujours UPX pour compresser les fichiers exe. Cela fonctionne parfaitement, entraînant souvent une compression du facteur 2. Et bien sûr, désactiver toutes les informations de débogage aidera à réduire la taille du fichier.

Utilisez un profileur de mémoire tel que celui de Red Gate . obtenez une vue en temps réel de l'utilisation de la mémoire au moment de l'exécution.

UPX et ASPack vont créer de nombreux problèmes en raison des fausses alarmes antivirus. Kaspersky le fait souvent!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top