Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[rust] Taille exécutable

10 views
Skip to first unread message

PP

unread,
Jun 28, 2022, 10:52:28 AM6/28/22
to

Salut à tous,
Comme il n’y a pas de groupe pour le langage rust, je me permet de
poster ici.

Voilà, je me suis essayé à créer le programme « Hello World »

Conclusion, l’exécutable sous linux fait… 10Mo !

en C il fait 16ko

Est-ce normal ?

Merci

J-P. Rosen

unread,
Jun 28, 2022, 11:24:50 AM6/28/22
to
En général, la taille de "Hello world" est un très mauvais indicateur de
l'efficacité d'un langage (ou d'un compilateur). En effet, il y a
toujours une petite charge fixe, indépendante de la taille du programme.
Par exemple, on peut embarquer l'interpréteur (je suppose que c'est ce
qui se passe ici: la taille que tu vois n'est pas celle de ton
programme, c'est celle de l'interpréteur).

--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52
https://www.adalog.fr

PP

unread,
Jun 28, 2022, 12:48:31 PM6/28/22
to

Le 28/06/2022 à 17:24, J-P. Rosen a écrit :
> Le 28/06/2022 à 16:52, PP a écrit :
>>
>> Salut à tous,
>> Comme il n’y a pas de groupe pour le langage rust, je me permet de
>> poster ici.
>>
>> Voilà, je me suis essayé à créer le programme « Hello World »
>>
>> Conclusion, l’exécutable sous linux fait… 10Mo !
>>
>> en C il fait 16ko
>>
>> Est-ce normal ?
>>
>> Merci
>
> En général, la taille de "Hello world" est un très mauvais indicateur de
> l'efficacité d'un langage (ou d'un compilateur). En effet, il y a
> toujours une petite charge fixe, indépendante de la taille du programme.
> Par exemple, on peut embarquer l'interpréteur (je suppose que c'est ce
> qui se passe ici: la taille que tu vois n'est pas celle de ton
> programme, c'est celle de l'interpréteur).
>

Je veux bien, mais normalement le programme est compilé en rust. Donc je
ne vois pas trop ce qu’un interpréteur fait là-dedans ?

J-P. Rosen

unread,
Jun 28, 2022, 5:10:55 PM6/28/22
to
Le 28/06/2022 à 18:48, PP a écrit :
> Je veux bien, mais normalement le programme est compilé en rust. Donc je
> ne vois pas trop ce qu’un interpréteur fait là-dedans ?
Je ne suis pas un spécialiste de Rust, mais est-il vraiment compilé en
natif?

Il peut y avoir d'autres effets, comme le fait que la moindre
entrée/sortie charge toute la bibliothèque d'E/S. Je maintiens que ce
genre d'essai n'est significatif que pour des programmes d'une certaine
taille...

Damien Wyart

unread,
Jun 29, 2022, 3:44:08 AM6/29/22
to
* PP <pipa...@free.fr.invalid> in fr.comp.lang.general:
> Voilà, je me suis essayé à créer le programme « Hello World »
> Conclusion, l’exécutable sous linux fait… 10Mo !

https://stackoverflow.com/questions/29008127/why-are-rust-executables-so-huge

--
DW

PP

unread,
Jun 29, 2022, 12:57:55 PM6/29/22
to
OK c’est bien ce que j’ai fini par comprendre.
Tout dépend des options par défaut du compilateur.

rustc compile en statique, ce qui fait que l’exécutable contient TOUTE
la librairie standard ! Chez moi ce n’est pas 3Mo comme dans le lien
mais 10Mo !

pour le programme en C j’ai utilise gcc qui doit compiler en dynamique,
d’où un exécutable de seulement 15-16ko

j’ai fait un nouvelle essai avec rustc en dynamique, mon exécutable fait
désormais seulement 17ko.

merci à tous pour les réponses.
0 new messages