2010-10-30 7 views
2

déjà delphi win32 exe taille est ~ 850 kb, ont-ils une feuille de route pour faire la taille de l'exe bit plus petit, (je sais que la taille est en raison de vcl unicode RTTI et beaucoup plus), delphi compile l'unité entière même une petite fonction dans l'unité est nécessaire. Donc, y a-t-il des facilités pour le faire, ou des produits tiers sont là, (je sais que kol et mck font la même chose)les applications Delphi deviendront plus petites à l'avenir

+0

delphi 2010 a le soutien de guesture et unicode, mais si je ne veux pas que je peux laisser et compiler – VibeeshanRC

+0

kol et MCK sont bien mais il y a un manque d'équipements et aucun soutien après d7 – VibeeshanRC

+7

dix ans, une Disque dur de 10 Go peut stocker 100000 de ces programmes. De nos jours, la gamme est en Terrabytes; fais ton calcul. L'optimisation prématurée est la racine de tous les maux (D.E. Knuth). –

Répondre

11

Je doute que la taille des exe soit une grande préoccupation pour l'équipe Delphi, ou même pour la plupart des les utilisateurs aussi bien. Comme vous l'avez remarqué, le format Unicode et le nouveau RTTI augmentent la taille, et même si vous pouvez activer le nouveau RTTI, il n'y a vraiment rien d'autre à faire à ce sujet.

En général, chaque nouvelle version de Delphi produit des fichiers plus gros, je ne vois pas cette tendance changer. En ce qui concerne la compilation d'unités entières incorrectes, à moins de compiler des paquets, le compilateur n'inclura pas les méthodes et les déclarations non utilisées.

Si la taille de l'exe est importante, vous n'avez pas beaucoup de choix. Si vous n'avez pas besoin d'unicode et d'autres nouvelles fonctionnalités, alors utiliser D2007 ou D7 ou même D2 est une option.

Vous pouvez utiliser des packers exe tels que UPX.

Si vous créez un ensemble d'applications, vous pouvez réduire la taille totale en utilisant des packages partagés.

Vérifiez également ces:

+0

"Je doute que la taille d'exe soit un problème pour l'équipe Delphi, ou même pour la plupart des utilisateurs." Je serais d'accord. Jusqu'à ce que vous atteignez la plage de plusieurs mégaoctets, il n'y a pas vraiment de ralentissement. – ssube

0

Vous ne devriez certainement pas attendre la taille exe pour les futures versions 64 bits Delphi être plus petit que le courant Fichiers Delphi exe 32 bits. Au contraire: les pointeurs et les types de pointeurs vont doubler de taille et d'autres structures de données peuvent croître en taille en raison du rembourrage (pour répondre aux exigences d'alignement). Tout cela est compilé dans l'exécutable, dont la taille va donc augmenter.

0

Le chemin semble être plus grand, dans le futur. La taille de l'application est devenue beaucoup moins importante puisque la taille des disques, la bande passante et l'empreinte mémoire sont rarement un problème dans le monde de Windows. Il y a toujours eu un compromis entre la taille exe et l'optimisation exe (certaines techniques d'optimisation peuvent agrandir un exe), et un exécutable 64 bits sera probablement un peu plus grand. Des améliorations de la langue peuvent également nécessiter de stocker plus de données sur le code lui-même (c'est-à-dire des informations RTTI). Il existe des techniques pour garder une petite taille d'exe, mais elles nécessitent généralement de contourner la plupart des fonctions et bibliothèques Delphi OOP et RAD. Sauf si vous avez des besoins très spéciaux, la taille de l'exe est rarement un problème (bien que je sache que certaines parties du monde ont encore de la bande passante, et peut-être aussi de l'espace disque).

Quoi qu'il en soit, AFAIK il n'est pas vrai Delphi va importer une unité entière. Les appels non utilisés seront supprimés, mais pas tout ce que vous aimeriez être. Le fichier dcu sera compilé dans son ensemble, mais seul le code nécessaire sera déplacé vers l'exécutable compilé. Quelque chose peut dépendre de vos options de compilation. Avez-vous activé l'option d'optimisation?

2

Je ne suis pas sûr de ce que kol and mck a à voir avec votre question sur la taille .EXE.

La présomption dans votre question qu'une unité est toujours complètement incluse dans votre .EXE, même si seulement une petite partie de l'unité est réellement utilisée, est tout à fait fausse.
Delphi dispose à la fois d'un optimiseur de code et d'un optimiseur de lieur.
Ce dernier n'inclura pas le code d'une unité dans votre fichier .EXE si ce code n'est pas réellement utilisé.

Vous pouvez répondre à votre question plus générale «avez-vous une feuille de route pour réduire la taille d'un fichier exe?» Par un simple «non». Le current roadmap ne comprend pas cela.

--jeroen