violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 2010
-
7 févr. 2007 à 20:58
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 2010
-
9 févr. 2007 à 18:10
Violent Ken
Bonjour, ma question est assez simple (mais la réponse...) : comment peut on réduire la taille de l'executable, et ainsi (et surtout) le temps de compilation du projet ? J'ai déjà séparé le projet complet en plusieurs fichiers *.ocx (que je ne recompile donc pas) et un *.exe, mais ce dernier est trop lourd (1.5 Mo sans ressources) et met donc un temps considérable à compiler... et comme je compile très souvent (option explicit ==> vérifie la validité de la syntaxe/types...etc), c'est bien gênant...
J'avais entenu parler qu'il y avait moyen de mettre des Foms dans des *.ocx (il me semble), ce serait une bonne solution pour ne pas à devoir recompiler tout le projet à chaque fois.
Quelqu'un saurait comment procéder si cela est effectivement possible ? Ou bien si vous avez une autre suggestion pour "subdiviser" le projet manière ou d'une autre, je suis preneur ;)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 7 févr. 2007 à 22:11
En fait, mettre des forms dans un activeX revient au même à afficher des feuilles à partir d'un module de classe dans ton projet :
Tu crée une instance de la classe de ton activeX, puis tu appelle une méthode de l'objet pour afficher la feuille.
Il faut bien entendu avoir conçu cà dès le départ, car une archi objet n'est pas à faire une fois que le projet est fini... car ca mène irrémédiablement à devoir repenser la logique de communication entre les feuilles par exemple.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 févr. 2007 à 00:46
dépend beaucoup du mode de compilation
en Natif, c'est plus long, mais ca produit un "meilleur" exe (pas de polémique)
en PCODe, ca compile BEAUCOUP plus vite, l'exe sera peut etre plus petit aussi....
ca peut surement suffir pour des tests de ton soft, si tu as a le compiler régulièrement.
maintenant, spliter un exe en sous exe c'est pas forcément une mauvaise chose... ca permet de ne toucher que celui qui est en cause, de réduire le code relatif a chacun...
reste que ca soulève quelques soucis :
- coopération
- coordination
- affichage en modal ?
...
Ca m'est arrivé de séparer un gros projet en sous projet... ca a son interet, c'est certain...
l'utilisateur pourras parfois lancer le sous exe directement, si c'est bien conçu... ou le lancer depuis l'exe principal, de manière transparente pour l'utilisateur....
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 7 févr. 2007 à 21:11
1.5Mo n'a rien d'exceptionnel en terme de taille d'exe. Si mes souvenirs sont bon, mon record est de 25Mo environ sans ressources graphiques ou binaires. (très grosse appli sur base de données)
Qu'appelle-tu temps considérable de compilation. Pour des projets très important, des temps de compilations de plusieurs dizaines de minutes ne sont pas exceptionnel non plus.
Pour complier les 25Mo je crois que j'arrivais aux alentour d'1h30.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 7 févr. 2007 à 21:30
Il est tout à fait possible de mettre des forms dans un ocx (ca doit être moi qui t'en ai parlé je pense ;)
Perso, mes logiciels ont un exe de 32 Ko, et tout est mis dans les dll, ainsi je ne compile que ce dont j'ai besoin, et c'est très très simple à mettre à jour : une petite dll à remplacer et hop, c'est à jour !
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 7 févr. 2007 à 21:34
Même point de vue que DARKSIDIOUs, avec une précision :
Dll regroupant des fonctions par catégories (travail sur chaînages, ouverture de dialogies Windows, etc...), de sorte à ce qu'une (ou plusieurs Dll) puisent servir à plusieurs projets sans trop de frais.3 Je les appelle mes "couteaux suisses"
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 7 févr. 2007 à 21:48
Sans compter en plus d'un chargement dynamique des ocx : les ocx sont chargés à la demande => si l'utilisateur n'utilise qu'un petit bout du programme (contenu dans une ou deux dll), alors seuls ces ocx seront chargés en mémoire, et pas tout les ocx ! Du coup, au lieu d'un gros exe de 25 Mo à charger en mémoire, tu ne charger que les quelques Ko des ocx.
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 7 févr. 2007 à 22:05
Violent Ken
lol ;) 1.5Mo n'a rien d'exceptionnel en effet, 25Mo, c'est très loin de ce que j'ai. Mais bon, il n'empeche que j'ai 3 forms assez lourdes en lignes de code, donc si je pouvais empecher la recompilation de tout çà.... Surtout qu'en effet, au niveau de la charge mémoire utilisée, ce serait aussi un gain non négligeable (étant donné aussi que ces trois form ne sont généralement pas chargée en même temps).
Je ne met pas 2h à compiler (encore heureux ^^) mais je compile très très fréquemment pour vérifier la cohérence du source et c'est un peu gênant d'attendre 40s à chaque fois. Parce que 40s fois 10, ben çà fait quand même 3min40 de perdu. Et en effet, c'est de plus en plus long (quoique tout est relatif) pour charger le logiciel.
J'ai déjà compilé au moins 692 fois le projet principal (au vu de l'incrémentation automatique) et donc au moins 5 heures de perdues ;) ! Donc bon, ce serait cool de régler çà ^^
Et effectivement oui, c'est bien toi Darksidious qui m'avait parlé de çà ^^ Mais comment est-ce que je travaille avec une form dans un ocx ? Pourrais tu me donner quelques précisions sur la manière de mettre en oeuvre çà (le frmMDI.ActiveForm, je vois pas comment le gérer) ? Parce que je traine plein de form complètement terminées qui n'ont pas lieu d'être recompilées à chaque fois, donc ce serait un gain de temps important de pouvoir séparer tout çà en plusieurs morceaux !
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 7 févr. 2007 à 23:02
Violent Ken
Hum hum, en effet. Merci pour la méthode, je vais voir si c'est applicable, et je pense au pire pouvoir déjà séparer en 2 exécutables deux parties du programme.
Merci, @+
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 9 févr. 2007 à 14:42
Bonjour,
Au sujet de la taille de l'exe pour le rendre plus petit soit tu fais de l'optimisation a fond ;-) et l'autre solution est de passe l'exe dans un compresseur d'exe. Le nom de ce logiciel est NoeLite, en regardant sur le net j'ai trouvais une url que voici "http://sac-ftp.externet.hu/pack12.html"
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 9 févr. 2007 à 18:10
Violent Ken
Renfiled ==> excellente suggestion, le P-CODE ! Je n'y avais pas pensé, mais c'est sans doute LA meilleure solution pour diminuer le temps de compilation ;)
Sinon, pour la communication entre divers exécutables, oui, çà pose certains problèmes, mais disons que si deux parties sont suffisament distinctes (l'une des 2 peut fonctionner sans l'autre), pas trop de problèmes.
Gally ==> la taille à proprement parler ne m'est pas problématique, mais c'est le temps de compilation qu'elle implique (ou bien réciproquement) qui l'est. Cela dit, je garde cette URL, çà peut toujours servir ;)