Journal Ce que les développeurs doivent savoir sur la mémoire

Posté par  .
Étiquettes :
0
28
nov.
2007
Ulrich Drepper a fait une série d'article très très très intéressants sur lwn.net. Ces articles étaient disponibles que pour ceux qui étaient abonnés à lwn.net. C'est payant mais lwn.net a un excellent compromis qui lui permet de vivre mais aussi de participer au libre.

Il y a quelques jours, Ulrich Drepper a publié un pdf (114 pages) qui regroupe cette série d'article sur la mémoire :
http://people.redhat.com/drepper/cpumemory.pdf (What every programmer should know about memory)

La série sur lwn.net :
* Introduction - Commodity Hardware Today : http://lwn.net/Articles/250967/
* CPU caches : http://lwn.net/Articles/252125/
* Virtual memory : http://lwn.net/Articles/253361/
* NUMA systems : http://lwn.net/Articles/254445/
* What programmers can do - cache optimization : http://lwn.net/Articles/255364/
* What programmers can do - multi-threaded optimizations : http://lwn.net/Articles/256433/
* Memory performance tools : http://lwn.net/Articles/257209/
* Future technologies : http://lwn.net/Articles/258154/
* Appendices and bibliography : http://lwn.net/Articles/258188/

Préférez la version pdf qui a de nombreuses corrections.

C'est un énorme travail que nous livre Ulrich Drepper.
  • # Question HS

    Posté par  . Évalué à 2.

    Hors sujet, désolé : à propos de
    C'est payant mais lwn.net a un excellent compromis qui lui permet de vivre mais aussi de participer au libre.
    en quoi consiste ce "compromis" dont tu parles ?
    • [^] # Re: Question HS

      Posté par  (site web personnel) . Évalué à 10.

      >>> en quoi consiste ce "compromis" dont tu parles ?

      Accès des articles réservés aux souscripteurs pendant la première semaine. Accès libre ouvert à tous dès la deuxième semaine.

      J'ai lu LWN pendant des années sans payer et en supportant le retard d'une semaine. Cela m'a fait connaitre le site et constater l'excellente qualité des articles. Finalement j'ai sauté le pas et j'ai souscris à l'abonnement (en plus les prix sont variables et il y a même un prix plancher pour les "hackers faméliques").
      Ce n'est pas tant pour gagner une semaine que pour soutenir le site qui est vraiment une référence du monde Linux. J'invite tous les gens sachant lire l'anglais et s'intéressant à Linux à souscrire pour faire vivre LWN.
      • [^] # Re: Question HS

        Posté par  (site web personnel) . Évalué à 10.

        A noter que toutes mes dépêches sur les sorties du nouveau noyau pointent abondamment vers des articles LWN.
        Je suis en train actuellement de rédiger tranquillement celle qui sera consacrée au 2.6.24 et j'écume LWN pour comprendre les nouveautés et faire une synthèse qui se veut accessible à tous. Merci donc à Jon Corbet et aux autres rédacteurs du site !
    • [^] # Re: Question HS

      Posté par  (site web personnel) . Évalué à 6.

      Tu peux lire http://lwn.net/op/FAQ.lwn#subs

      Contrairement au journal Le Monde qui donne immédiatement ses articles et une semaine après ils ne sont plus disponibles à personne, lwn fait des articles de fond (mais quand même souvent d'actualité) qui ne sont disponibles la première semaine que pour les abonnés (et ensuite pour tout le monde, même Le Monde, ah non c'est en anglais :) ).
      Et forcément, ça cause du libre, d'où la participation au libre évoquée, àmha.
  • # Mon billet sur la mémoire

    Posté par  (site web personnel) . Évalué à 8.

    Pour les personnes intéressées par la gestion de la mémoire, je vous conseille la lecture de mon billet où je parle des évolutions de malloc() adaptés aux processeurs multi-coeurs :
    http://www.haypocalc.com/blog/index.php/2007/11/08/87-gestio(...)
  • # Pleonasme

    Posté par  . Évalué à 4.

    > Ulrich Drepper a fait une série d'article très très très intéressants sur lwn.net
    :o)

    Sinon, je recommande également la lecture de son blog
    http://udrepper.livejournal.com/
  • # Licence des documents

    Posté par  . Évalué à 1.

    Je souhaite faire part de ce merveilleux document à mon entreprise.
    Je constate avec tristesse que le document pdf contient la mention :

    "Copyright 2007 Ulrich Drepper
    All rights reserved. No redistribution allowed"

    en bas de chaque pages.

    J'ai comme l'impression que tu n'as pas le droit de donner un lien vers ce document, ni que j'ai le droit de faire part de ce document à mes collègues de travail.

    Me trompe-je ?
    • [^] # Re: Licence des documents

      Posté par  (site web personnel) . Évalué à 4.

      Il explique pourquoi sur son blog:
      You can download it but do not re-publish it or make it available in any form to others. I do not want multiple copies flying around, at least not while I'm still intending to maintain the document.

      AMHA tu peux tout à fait forwarder le lien à tes collègues (mais pas le PDF directement).
    • [^] # Re: Licence des documents

      Posté par  (site web personnel) . Évalué à 2.

      >>> Me trompe-je ?

      Tu a le droit de filer l'url a qui tu veux pour qu'il puisse télécharger le document.
      Ulrich s'en est expliqué sur son blog :

      You can download it but do not re-publish it or make it available in any form to others. I do not want multiple copies flying around, at least not while I'm still intending to maintain the document.
  • # PDF corrompu

    Posté par  (site web personnel, Mastodon) . Évalué à -2.

    Bonjour,

    non le PDF ne fait pas du chantage aux petites vieilles. Par contre chez moi il ne s'ouvre pas. Et comme l'article dit que le pdf est plus récent, je préférerai lire cette version (parce que j'aurai la flemme de lire 2*114 pages déjà). Quelqu'un a-t-il réussi à lire et télécharger ce fichier à partir du lien donné?
    Merci.

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

    • [^] # Re: PDF corrompu

      Posté par  . Évalué à 3.

      Je l'ai téléchargé la semaine dernière et je viens de le retélécharger.
      Donc oui ça marche.
    • [^] # Re: PDF corrompu

      Posté par  (site web personnel) . Évalué à 2.

      Ça marche très bien avec xpdf 3.02, au moins.
      C'est du PDF 1.5 apparemment avec un sommaire cliquable et tout, et c'est vrai qu'en général on croise plutôt du PDF 1.3 ou 1.4 de base, donc le soucis vient peut-être de là : faut mettre à jour ou changer ton lecteur de PDF.
      • [^] # Re: PDF corrompu

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        En fait en mettant à jour Acrobat Reader (oui, je sais, ce n'est pas Libre), ça a fonctionné. Donc désolé, fausse alerte.

        Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

    • [^] # Re: PDF corrompu

      Posté par  . Évalué à 1.

      > Quelqu'un a-t-il réussi à lire et télécharger ce fichier à partir du lien donné?

      Oui. Ici avec evince-2.20.1.
  • # Combien consomme de mémoire un programme ?

    Posté par  (site web personnel) . Évalué à 2.

    Est-ce que l'on sais enfin, après la lecture de ces articles comment interpréter la sortie de top ou ps pour savoir combien de mémoire consomme un programme ?

    exemple avec top :

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    2757 root 20 0 557m 20m 7912 S 1.0 2.0 0:16.18 X


    exemple avec ps axu :

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 2757 0.7 1.9 28936 20472 tty7 Ss+ 20:22 0:11 /usr/bin/X :0 -br -audit 0 -auth /var/gdm/:0.X
    • [^] # Re: Combien consomme de mémoire un programme ?

      Posté par  . Évalué à 2.

      > Est-ce que l'on sais enfin, après la lecture de ces articles comment interpréter la sortie de top ou ps pour savoir combien de mémoire consomme un programme ?

      Ce n'est pas l'objectif du papier.

      Il faut aussi définir ce qu'est "combien de mémoire consomme un programme".
      C'est y compris les librairies partagées ? Y compris ce qui est en swap ? C'est la somme de tous les fichiers mappés en mémoire ? Ou c'est seulement le tas et les malloc ?

      > exemple avec ps axu :
      >
      > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
      > root 2757 ....

      $ su -c "kill -9 2757"
      pour récupérer la mémoire de ce gros gramme. Ainsi tu ne te demanderas plus combien il "consomme".
    • [^] # Re: Combien consomme de mémoire un programme ?

      Posté par  . Évalué à 3.

      De tête :
      virt : la mémoire totale qui aurait put être utilisée par le programme (mémoire alloué, mémoire utilisée par les != librairies, ...)
      Res : la mémoire utilisé par le programme en lui même.
      Shr : la mémoire qui peut être partagé pour d'autres programmes.
  • # impressive

    Posté par  (site web personnel) . Évalué à 3.

    Impressionnant comme document, j'ose pas imaginer le temps que ça lui a pris à réaliser. Il utilise oprofile pour faire les profils, est-ce que beaucoup de gens arrivent à l'utiliser et à en sortir des choses interessantes ? A chaque fois que j'ai essayé ça a été un lamentable echec, c'est vraiment loin de marcher "en dehors de la boite".. Dommage qu'il n'y ait pas d'outil de profiling du niveau de Shark ( http://developer.apple.com/tools/sharkoptimize.html ) sous Linux, c'est vraiment un must en matière de puissance et de simplicité d'usage.
    • [^] # Re: impressive

      Posté par  . Évalué à 1.

      bon, j'ai jamais utilisé le côté profiler, mais regarde du côté de ibm rational purify(plus).

      ça coute surement cher...mais pour le côté memory leaks, c'est carrément bon, donc j'imagine que ça doit pas être mauvais pour le profiling.
      • [^] # Re: impressive

        Posté par  . Évalué à 2.

        Regarder les memory leaks, ce n'est pas du profiling. La seule solution c'est oprofile sous Linux. il y a aussi valgind + kcachegrind, avec une interface époustouflante, mais ça ne fait que simuler un CPU et les résultats m'avait intrigué à l'époque.

        http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGr(...)
        ça tue ...

        je rêve d'un outils aussi simple que le profiler de Sun Studio 10 sous Linux. Je l'avais utilisé et ça m'avais vraiment permis d'avoir de nombreux gains (c'est enfantin de savoir où placer des prefetch avec ce profiler) je ne sais pas ce que donne ce profiler sous x86, je l'utilisais sous Solaris Sparc.
      • [^] # Re: impressive

        Posté par  . Évalué à 2.

        Il y a valgrind ( http://valgrind.org/ ) qui est très bien pour faire du profiling et pour chercher les memory leaks (et d'autres choses suivant les plugins :p)
    • [^] # Re: impressive

      Posté par  . Évalué à 3.

      Avec le premier commentaire sur "Memory performance tools" je suis tombé sur http://projects.o-hand.com/oprofileui , une IHM pour oProfile.
      Je ne sais pas ce que ça vaut, tu connais ?
    • [^] # Re: impressive

      Posté par  . Évalué à 3.

      marcher "en dehors de la boite", marrant comme expression :)
      • [^] # Re: impressive

        Posté par  (site web personnel) . Évalué à 2.

        traduction littérale de "out of the box", un classique chez les adeptes de la tribune (qui va revenir).
  • # développeur + mémoire =

    Posté par  . Évalué à 2.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.