• [^] # Re: Quoi ? Il faut créer plein de processus ?

    Posté par . En réponse à la dépêche Évolutions techniques de systemd. Évalué à 10.

    Si vous doutez de ma capacité à écrire 10 lignes de code, vous pouvez vérifier sur [https://github.com/pcarrier/stuff/blob/master/fun/forking.c].

    Ton test ne fait que le fork; il manque pas mal de travail. Il faudrait tester avec un exec qui va parcourir PATH pour trouver le bon fichier, qui va modifier le mappage mémoire, qui va faire la résolution dynamique des librairies, charger les locales, lire sur stdin, écrire sur stdout, sortir, enfin coté fils il faut encore lire le résultat.

    Le test d'une série me semble pas mal, genre partir de n=0 et lancer 2048 fois "bc" en lui passant "n+2".

    En shell ça donne ça:

    $  time bash -eu -c 'N=0; for I in $(seq 2048); do N=$(echo "$N + 2" | bc); done; echo $N'
    4096
    real 0m3.352s
    user 0m0.940s
    sys 0m2.390s
    

    Ce qui fait 3.3 secondes chez moi.