• [^] # Re: Re:

    Posté par . En réponse au journal Un meilleur shell. Évalué à 5.

    Lors de l'init, ce sont les autres applications lancées qui prennent du temps. Le temps CPU consacré à l'interprétation doit être très faible.


    Je pense aussi. Concrètement, pendant le démarrage, plusieurs milliers de processus sont lancés! Et si lancer un processus ça coûte relativement peu, en lancer plusieurs milliers, c'est très coûteux, surtout lorsque le processus s'arrête quasi aussitôt! Il a fallu aller le chercher sur disque (ça, c'est très coûteux en temps), le charger en mémoire, faire l'édition de lien dynamique et donc aller chercher sur disque les librairies,... Lors du démarrage, certains processus mettent peut-être plus de temps à se lancer qu'à faire leur travail!!

    On voit d'ailleurs la différence entre un premier lancement et les suivants:
    mfertre@paraphrase:~$ time /bin/echo toto
    toto

    real 0m0.060s
    user 0m0.000s
    sys 0m0.004s
    mfertre@paraphrase:~$ time /bin/echo toto
    toto

    real 0m0.002s
    user 0m0.000s
    sys 0m0.000s

    Sur un processus qui demande 2 milli-secondes de travail, il en a fallu 64 lors d'un premier appel!

    En faisant un calcul tout à fait à la louche, en admettant que 1000 processus correspondant à des exécutables différents soient lancés lors du démarrage (bon, je pense pas quand même, il doit y avoir beaucoup de bash, grep, sed, awk, sort, cut, touch, etc.), ça prendrait environ (64-2ms * 1000) soit environ 1 min (ne soyons plus à une approximation près) ! Sans compter le temps de traitement!