Comment atteindre la petite taille de l'exécutable?
Très récemment, j'ai dû revenir à Delphes après une longue pause et écrit d'une opération assez simple app utilitaire mon client a demandé à l'appui d'une version antérieure...
Je sais que de nos jours la taille n'importe pas beaucoup, mais il m'a frappé comme étrange que celui-unité d'application, lors de la compilation, s'élève à 1'084'416 b exécutable. Le seul et unique .pas d'unité, j'ai écrit certains de 20,8 k grand, principalement en raison de la richesse de l'interface graphique.
La uses
clause est comme suit:
uses
Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, strutils,
Dialogs, ADODB, DB, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Grids, Menus,
Buttons;
Je me demande si il n'y a aucun moyen que je pourrais réduire la taille de l'application à 300-400k ou moins?
Le stockage n'est pas la seule considération ici. Entre autres choses, de plus gros fichiers de plus les temps de téléchargement, ce qui affecte l'utilisateur final de la perception de la qualité du programme.
Mason Wheeler: Il applique également les utilisateurs sentiment que c'est juste un util à la place d'une application.
Mason Wheeler: Il applique également les utilisateurs sentiment que c'est juste un util à la place d'une application.
OriginalL'auteur Peter Perháč | 2010-01-27
Vous devez vous connecter pour publier un commentaire.
Avez-vous fait un debug ou release build? (Il la libération de plus petite taille, assurez-vous que l'optimisation est activée, les informations de débogage éteint)
Avez-vous désactivé RTII (delphi 2010 et jusqu') si n'est pas nécessaire? (Petit EXE tailles.)
Nombre d'unités dans votre clause uses de votre unité principale, n'est pas une bonne façon de deviner taille de fichier EXE. Pensez-y de cette façon: La CLASSIFICATION elle-même est une grande quantité de code, la Base de données de la Couche de l'autre, et les choses que vous écrivez est probablement un très petit pourcentage de la taille de fichier EXE.
À comprendre votre taille de l'exécutable, essayez de le JCL Projet de l'Analyseur, ou de lire le fichier de la CARTE qui est produit lorsque vous activez l'option de Carte. Cela vous dira exactement ce qui est à l'intérieur de votre fichier exécutable.
Il serait stupide pour diverses raisons, mais vous pourriez avoir un petit exécutable en utilisant Delphi 7, par exemple. À la fin, quand je fais une demande et je veux le rendre plus petit, je regarde combien de temps et comment beaucoup d'efforts pour tout reconstruire (comme avec un vcl alternative) et je puis dire à moi-même, l'oublier.
Il suffit de sélectionner "Libération" au lieu de "Debug" et le fichier de 13mo sera comprimé à 2 mo !!!!!!
Ma réponse a déjà dit que quand je l'ai écrit il y a six ans. Pourquoi le dire de nouveau?
OriginalL'auteur Warren P
Vous pouvez essayer d'utiliser KOL (les Principaux Objets de la Bibliothèque est un ensemble d'objets pour développer la puissance (mais petit) 32 bits de Windows GUI applications à l'aide de Delphi, mais sans VCL). KOL permet de créer très compact Windows32 des applications avec interface graphique (à partir de ~11K sans compression - si suggéré système d'unités de remplacement). La plupart du code est converti intégré dans l'assembleur.
Une autre option est d'utiliser un exe compresseur comme UPX.
Ne pas utiliser UPX, sauf si vous voulez avoir des clients qui appellent à propos de vos programmes tournant dans les antivirus mises en garde toute la journée.
Je sais au sujet de l'existence de certains cas isolés de faux positifs causés par l'utilisation de UPX, mais je crois que l'utilisation de UPX est toujours une option valable.
voir aussi: aspack.com
Bien que UPX réduit la taille de fichier exe il augmente la mémoire nécessaire pour vous exécutable.
OriginalL'auteur RRUZ
MapFileStats (DelphiTools.info) est un bon (gratuit) outil qui vous permet de voir combien d'espace de chaque unité occupe dans votre exécutable. Mon propre outil DelphiUnitSizes est une alternative qui en plus de l'unité de tailles aussi afficher la taille de chaque classe ou de fonction.
Delphi 2010 a fait l'exécutable par défaut environ 30% plus grande, probablement en raison de RTTI inclus dans le RTL/VCL unités, de sorte que vous pouvez utiliser une ancienne version de Delphi pour les petits exe de taille.
Comme d'autres l'ont mentionné UPX est un excellent outil de trop, les faux positifs par virusscanners ne sont pas si fréquentes dans mon expérience.
La taille de Delphes-exécutables peuvent être très abaissé à l'aide personnalisée du Système d'unités et de UPX-compression. Je peux générer des fichiers exe qui sont moins de 64 ko de taille avec mon Delphi-jeu basé sur un générateur de ZGameEditor, même avec Delphi Berlin.
OriginalL'auteur Ville Krumlinde
Quelle est la taille de votre DFM? Il est inclus comme une ressource dans votre EXE. Selon la complexité de votre interface graphique, vous trouverez peut-être que la création de l'interface graphique à l'exécution de code pourrait réduire la taille de fichier EXE.
la DFM est de 17'103 b. j'ai oublié de mentionner que.
OriginalL'auteur Jim McKeeth
Vous pouvez également réputé pour ajouter la ligne suivante au début du fichier de projet:
Explication ici : http://hallvards.blogspot.fr/2006/09/hack12-create-smaller-exe-files.html
OriginalL'auteur philnext
Oui, mais alors vous aurez besoin de fournir à l'autre des unités de code comme des fichiers supplémentaires. Tout comme .net requis l'assemblée, et que vous avez VB runtime, etc., ce n'est que le Delphi à l'exécution, mais il est intégré dans l'exe.
Une autre option est de compresser le fichier exécutable, il existe des outils pour que autour de.
UPX est un open-source packer.
D'autres ont été plus rapides que moi, UPX est un fait bien connu.
merci pour cette upx autres, je n'ai jamais cherché dans cette direction. Semble être une solution partielle puisqu'elle a réduit la taille d'un peu plus de 300k.
OriginalL'auteur Lucero
Vous dites que vous êtes de retour à Delphes. Si vous disposez d'une ancienne version est disponible, utilisez - chaque nouvelle version ajoute des fonctionnalités supplémentaires et si vous n'en avez pas besoin votre ex sera plus petite sans eux.
Assurez-vous que vous êtes seulement, y compris les unités que vous utilisez réellement.
Mais quoi que vous fassiez, je doute fort que vous obtiendrez en bas à 300k. Si ma mémoire est bonne, même un " bonjour le monde!' application en Delphi 2 serait plus important que cela.
OriginalL'auteur Mike Sutton
Avez-vous des fichiers de ressources ou d'images qui sont liées dans le projet?
Je pense que le ADODB comprend également tout à fait généraux. Si votre application utilise une base de données qu'une simple 1MB n'est pas trop mauvais pour la taille du fichier? N'oubliez pas que votre application est juste de ce exe - dll supplémentaire etc.
OriginalL'auteur Birger