Le compilateur golang est très bon pour la décompression !
Il te décompresse un fichier texte de 1.1Ko en un binaire de 7.7Mo !
Le compilateur golang est très bon pour la décompression !
Il te décompresse un fichier texte de 1.1Ko en un binaire de 7.7Mo !
Bon je me moque mais vraiment, pour un non-dev pouvoir faire une ptite interface web crossplatforme en moins de 50 lignes de code je trouve ça ouf. Ça me donne envie d'en faire d'autres :-D
@lanodan Il y a des options dans le compilo pour jarter un paquet de merde et oui il ya moyen de passer par un packer pour réduire encore un coup.
Il y a probablement moyen de diviser par trois la taille du truc.
go build -ldflags "-s -w"
Et le binaire tombe déjà à 5.2 Mo.
@lord Ouais je dit pas non là dessus, juste que les fichiers séparé de debug ça existe (que gentoo permet via FEATURES=splitdebug d'ailleurs).
Sinon tu as juste pas moyen de debug derrière (et comme une bonne partie des bugs ça arrive en prod, les fichiers séparé c'est plutôt cool).
@lanodan Ha bha si le but est d'avoir un ptit binaire, il y a pas trop de miracle, faut tailler dans le gras.
@lanodan Tu es train de dire que j'aurais programmé un truc avec des bugs ? o___o
Pourquoi j'aurais fait ça ?
@lanodan Voilà 1.5Mo le binaire sans bug aucun.
@lord Punaise… 1.5Mo pour rien.
$ pat true-*.* ### 2 Files ### ### File 1 << true-c.c >> ### int main() { return 0; }; ### File 2 << true-hare.ha >> ### use os; export fn main() void = os::exit(0); $ hare build -R -o true-hare true-hare.ha ; llvm-strip -s true-hare $ clang -Oz -static -s -o true-c true-c.c ; llvm-strip -s true-c $ du -sh --apparent-size true-* 3.8K true-c 26 true-c.c 77K true-hare 46 true-hare.haD'ailleurs fait pas un strace sur ton vide. ^^
@lanodan et avec les options de compilations de tout à l'heure ça tombe à 983ko.
@breizh @lord J'aurais tendance à dire sûrement, genre le vide.go alloue au moins 768 kB de mémoire dynamique (RSS) et sans doute pire vu qu'il y'a 4 purins d'appels à clone(2), donc le getrusage(2) de mon time(1) à malheureusement pas pu tout compter.
@lord @lanodan J’en serais même pas certain. Je veux dire, Go embarque pleins de trucs qui eux sont ptêt bugués…
Ah ouais… heureusement que Linux supporte l'overcommitting et du coup l'allocation ne réserve qu'à l'usage (ce que je trouve particulièrement horrible).
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.