• [^] # Re: Performance des compilateurs libres

    Posté par (site web personnel, Mastodon) . En réponse au journal Des nouvelles de Fortran. Évalué à 3. Dernière modification le 06 mai 2020 à 14:45.

    Je n'ai pas de point de comparaison avec/sans libc.

    Par contre, sans aller jusqu'à désassembler le code, on peut peut-être avoir une idée avec des outils simples. Prenons le programme minimaliste suivant :

    print *, "Hello world!"
    end

    Après compilation avec gfortran :

    $ ldd ./a.out
     linux-vdso.so.1 (0x00007ffded759000)
     libgfortran.so.5 => /usr/lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007f73d84f2000)
     libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f73d8301000)
     libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f73d82b7000)
     libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f73d8168000)
     libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f73d814e000)
     /lib64/ld-linux-x86-64.so.2 (0x00007f73d87d8000)

    Avec $ strace ./a.out, j'obtiens entre autres 24 appels mmap() lors de l'initialisation (c'est-à-dire avant l'exécution du print).

    Sur un vrai programme de calcul scientifique, qui ne fait que calculer pendant quelques secondes avec un unique print à la fin, ça a l'air pareil. Après la phase d'initialisation, strace n'affiche plus rien jusqu'à l'affichage final.