[R] Réduire la taille des executables
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- BaronMouDuKu
- Niveau 1
- Messages : 6
- Enregistré le : lun. 24 sept. 2007 18:03
- Status : Hors ligne
[R] Réduire la taille des executables
Hello all !
Technicien réseau dans un lycée de plus de 500 PCs, AutoIt est devenu pour moi mon meilleur ami :
pas de runtime, compatibilité 98 XP 2000,simple et exXxtrement puissant !!
Je scripte a tout va avec !
Seulement voila, plus le temps passe et plus, a chaque version d'AutoIt, les tailles d'executables augmente. Meme si 250 Ko peuvent paraitrent "legers", il faut voir quand 300 momes se connectent en même temps sur un reseau 100 Mbs. Et qu'il chargent des scripts avec 2 a 4 executables chaqu'un.
Bref très vite ca fait 500 Mo a faire passer dans les tuyaux a chaque sonnerie de debut de cours, et tout le monde rale si un script met plus de 5 sec a charger.
Donc ma question est simple, comment compiler des executables plus petits (un programme avec UNE ligne de code fait deja 240 Ko a la base) ?
Merci d'avance de vos suggestions !
Technicien réseau dans un lycée de plus de 500 PCs, AutoIt est devenu pour moi mon meilleur ami :
pas de runtime, compatibilité 98 XP 2000,simple et exXxtrement puissant !!
Je scripte a tout va avec !
Seulement voila, plus le temps passe et plus, a chaque version d'AutoIt, les tailles d'executables augmente. Meme si 250 Ko peuvent paraitrent "legers", il faut voir quand 300 momes se connectent en même temps sur un reseau 100 Mbs. Et qu'il chargent des scripts avec 2 a 4 executables chaqu'un.
Bref très vite ca fait 500 Mo a faire passer dans les tuyaux a chaque sonnerie de debut de cours, et tout le monde rale si un script met plus de 5 sec a charger.
Donc ma question est simple, comment compiler des executables plus petits (un programme avec UNE ligne de code fait deja 240 Ko a la base) ?
Merci d'avance de vos suggestions !
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Bonjour,
la seule façon est de définir un taux de compression optimum et utiliser UPX dérrière lors de la compilation avec option.
sinon, il faut installer autoit sur tous les clents et travailler avec les compil .a3x, plus petites que la taille dus cript et semi compilées
la seule façon est de définir un taux de compression optimum et utiliser UPX dérrière lors de la compilation avec option.
sinon, il faut installer autoit sur tous les clents et travailler avec les compil .a3x, plus petites que la taille dus cript et semi compilées
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- BaronMouDuKu
- Niveau 1
- Messages : 6
- Enregistré le : lun. 24 sept. 2007 18:03
- Status : Hors ligne
j'ai deja regle tous les parametres possibles pour compresser au mieux mes executables
Et s'il est vrai que la taille des fichiers .a3x est imbattable (environ 10 Ko pour un script pas trop complexe), le code est en clair, et donc de petits bidouilleurs reussiraient a mettre le nez dedans, ce qui ne m'enchante guere. De plus, installer autoit sur tous les postes (plus de 500...) bof, enfin y'a toujours moyen de faire un script autoit pour ca !
Par contre j'ai ressorti de sous les fagots la version 3.0.1.2, et en recompilant 1 ou 2 script pour voir, je passe de 248Ko a 108Ko , sans message d'erreur.
J'imagine qu'il y a moins de biblio embarquees dans l'executable, mais est-ce que je prend un risque quelconque si je n'ai pas d'erreur a la compilation ?
y'a a-t-il des version d'autoit3 qu'il vaut mieux eviter (version avec un mechant bug par exemple) ?
Et s'il est vrai que la taille des fichiers .a3x est imbattable (environ 10 Ko pour un script pas trop complexe), le code est en clair, et donc de petits bidouilleurs reussiraient a mettre le nez dedans, ce qui ne m'enchante guere. De plus, installer autoit sur tous les postes (plus de 500...) bof, enfin y'a toujours moyen de faire un script autoit pour ca !
Par contre j'ai ressorti de sous les fagots la version 3.0.1.2, et en recompilant 1 ou 2 script pour voir, je passe de 248Ko a 108Ko , sans message d'erreur.
J'imagine qu'il y a moins de biblio embarquees dans l'executable, mais est-ce que je prend un risque quelconque si je n'ai pas d'erreur a la compilation ?
y'a a-t-il des version d'autoit3 qu'il vaut mieux eviter (version avec un mechant bug par exemple) ?
- BaronMouDuKu
- Niveau 1
- Messages : 6
- Enregistré le : lun. 24 sept. 2007 18:03
- Status : Hors ligne
Bon autant pour moi,
deja c'etait pas terrible de defendre l'idee d'utiliser un viel autoit (2004 quand meme), mais j'avais vraiment fait l'essai sur des scripts tres tres legers.
Y'a meme pas le support des variables booleenne dans la 3.0.1.2 (False/True)
j'ai épluche l'historique, et plein de fonctions que j'utilise n'apparaissent que recemment donc...
Je pense donc le sujet clos (sauf si quelqu'un me sort une aut' soluce)
Mais je garde l'idee de faire quelques scripts simplistes en version 3.0 pour les transferts reseau. Les scripts plus complexes (3.2.8.x) seront localement sur les postes.
A moi d'eclater mes programmes en plein de scripts !
Merci !
deja c'etait pas terrible de defendre l'idee d'utiliser un viel autoit (2004 quand meme), mais j'avais vraiment fait l'essai sur des scripts tres tres legers.
Y'a meme pas le support des variables booleenne dans la 3.0.1.2 (False/True)
j'ai épluche l'historique, et plein de fonctions que j'utilise n'apparaissent que recemment donc...
Je pense donc le sujet clos (sauf si quelqu'un me sort une aut' soluce)
Mais je garde l'idee de faire quelques scripts simplistes en version 3.0 pour les transferts reseau. Les scripts plus complexes (3.2.8.x) seront localement sur les postes.
A moi d'eclater mes programmes en plein de scripts !
Merci !
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Je ne sais pas réellement ce que fait autoit lorsqu'il compile en a3x, cependant depuis la 3.2.5.1, Exe2Au3 n'est plus censé pouvoir faire chemin arrière.
Comment arrives tu à revenir sur le code en clair depuis un a3x ?
C'est intéressant
Sinon je reviens sur ce que j'ai dit dans le dernier post : avec les a3x, seule la présence de l'executable AutoIt3.exe est nécessaire, pas son installation totale
Comment arrives tu à revenir sur le code en clair depuis un a3x ?
C'est intéressant
Sinon je reviens sur ce que j'ai dit dans le dernier post : avec les a3x, seule la présence de l'executable AutoIt3.exe est nécessaire, pas son installation totale
Modifié en dernier par sylvanie le mar. 25 sept. 2007 23:08, modifié 1 fois.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Les includes !
Certaines sont remplies de code inutiles !! quelquefois + de 1500 lignes alors que tu en as besoin que de 10 !
Sa pourrait te faire gagner quelque chose...
Pour "vider" les passage inutiles des includes voila comment je procéderais.
Certaines sont remplies de code inutiles !! quelquefois + de 1500 lignes alors que tu en as besoin que de 10 !
Sa pourrait te faire gagner quelque chose...
Pour "vider" les passage inutiles des includes voila comment je procéderais.
- Une fois ton code écris il faut compiler en autorisant la decompilation.
- Puis tu decompiles ton programme et la miracle il y a beaucoup plus de ligne que prévu ! toutes les includes sont presentes ! efface tous ce dont tu n'as pas besoin ! ( attention a vérifier que le script fonctionne toujours au cas ou tu effacerais une fonction importante.)
- Apres ce nettoyage terminé, efface les #include de ton programmme puisque elle sont deja ecrite !
- Recompile...
- BaronMouDuKu
- Niveau 1
- Messages : 6
- Enregistré le : lun. 24 sept. 2007 18:03
- Status : Hors ligne
erreur de manip : je n'ai pas réussi a repasser en clair le code d'un .a3x, j'avais juste renommer un .au3 en .a3x.
Il n'est pas possible de revenir en arrière depuis la 3.2.5.1.
Donc pour tester la technique de décompilation de VooDoo, je vais m'installer la 3.2.4.9 (dernière version téléchargeable dans les archives) et tenter le coup des includes...
Je vous tiens au courant !
Il n'est pas possible de revenir en arrière depuis la 3.2.5.1.
Donc pour tester la technique de décompilation de VooDoo, je vais m'installer la 3.2.4.9 (dernière version téléchargeable dans les archives) et tenter le coup des includes...
Je vous tiens au courant !
- BaronMouDuKu
- Niveau 1
- Messages : 6
- Enregistré le : lun. 24 sept. 2007 18:03
- Status : Hors ligne
Et bien non,
En effet, on y gagne un peu mais... 10 Ko sur les 240 Ko de l'exécutable. L'idée était belle pourtant !
De toute façon ça voulait dire rester bloqué sur la version 3.2.4.9... ou alors faire ses includes manuellement en allant chercher le nécessaire dans les "constant.au3" et compagnie, vu qu'on ne peux plus décompiler maintenant...
Merci de toutes ces bonnes idées, j'en reste donc a un script simpliste d'installation et de mise a jour à travers le réseau en version 3.0.1 (90 Ko) et a des scripts locaux mais complexes en version 3.2.8 (240 Ko minimum)
Thanks !
En effet, on y gagne un peu mais... 10 Ko sur les 240 Ko de l'exécutable. L'idée était belle pourtant !
De toute façon ça voulait dire rester bloqué sur la version 3.2.4.9... ou alors faire ses includes manuellement en allant chercher le nécessaire dans les "constant.au3" et compagnie, vu qu'on ne peux plus décompiler maintenant...
Merci de toutes ces bonnes idées, j'en reste donc a un script simpliste d'installation et de mise a jour à travers le réseau en version 3.0.1 (90 Ko) et a des scripts locaux mais complexes en version 3.2.8 (240 Ko minimum)
Thanks !
- jl56
- Niveau 7
- Messages : 411
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
bonjour
je ne connaissais les fichiers a3x que mentionne Sylvanie
j'ai donc compilé un script au3 de 125 ko en a3x
résultat 60 k au lieu de 285 k l'exe
puis j'ai copier sur un poste où il n'y a pas autoit le programme AutoIt3.exe
en lancant le fichier autoit3.exe
via par exemple "c:\test\autoit3.exe" script.a3x
le script ce lance sans probleme
j'ai meme associer l'extension a3x au programme c:\test\autoit3.exe
et en cliquant sur le fichier script.a3x ca fonctionne normalement
tu peut donc copier une seul fois le fichier autoit3.exe et transferer ton script a3x seulement à chaque connexion
voila
a+ jl56
je ne connaissais les fichiers a3x que mentionne Sylvanie
j'ai donc compilé un script au3 de 125 ko en a3x
résultat 60 k au lieu de 285 k l'exe
puis j'ai copier sur un poste où il n'y a pas autoit le programme AutoIt3.exe
en lancant le fichier autoit3.exe
via par exemple "c:\test\autoit3.exe" script.a3x
le script ce lance sans probleme
j'ai meme associer l'extension a3x au programme c:\test\autoit3.exe
et en cliquant sur le fichier script.a3x ca fonctionne normalement
tu peut donc copier une seul fois le fichier autoit3.exe et transferer ton script a3x seulement à chaque connexion
voila
a+ jl56