2 points par GN⁺ 2025-12-24 | 1 commentaires | Partager sur WhatsApp
  • Ouvrage technique présentant de façon structurée les principes de la gestion automatique de la mémoire, avec une explication complète des algorithmes de ramasse-miettes dans les environnements matériels et logiciels modernes
  • Deuxième édition publiée après celles de 1996 et 2012, intégrant les résultats de 60 ans de recherche et de développement
  • Inclut les techniques modernes de collecteurs haute performance comme la collecte parallèle, incrémentale, concurrente et temps réel, avec des algorithmes présentés concrètement au moyen de pseudocode et de schémas
  • Ajoute de nouveaux chapitres sur la persistance (persistence) et la collecte sensible à l’énergie, avec un lien vers une base de données de plus de 3 400 articles scientifiques connexes
  • Alors que la plupart des langages de programmation modernes adoptent le ramasse-miettes, c’est une référence essentielle pour aider les développeurs à choisir et configurer correctement un collecteur

Aperçu de la deuxième édition

  • Suite de Garbage Collection (1996) et de The Garbage Collection Handbook (2012), reflétant l’état de l’art actuel dans le domaine de la gestion automatique de la mémoire
    • Tient compte du fait que les progrès technologiques ont rendu la gestion de la mémoire plus complexe et plus importante
    • Intègre dans un cadre accessible les connaissances accumulées par les chercheurs et les développeurs au cours des 60 dernières années
  • Traite des nouveaux défis posés au ramasse-miettes par les évolutions du matériel et des logiciels
    • Explore l’impact des changements d’environnement d’exécution des programmes sur les concepteurs et implémenteurs de collecteurs haute performance
    • Couvre non seulement les algorithmes simples et traditionnels, mais aussi la collecte parallèle, incrémentale, concurrente et temps réel
    • Les algorithmes et les concepts sont expliqués à l’aide de pseudocode et de schémas

Principales caractéristiques du livre

  • Propose une suite complète et à jour aux éditions de 1996 et 2012
  • Traite de manière exhaustive les algorithmes de collecte parallèle, concurrente et temps réel
  • Explique en détail le fonctionnement des collecteurs commerciaux haute performance
  • Aborde les problèmes d’interface complexes avec les systèmes d’exécution
  • Comprend plus de 90 pages supplémentaires et de nouveaux chapitres sur la persistance et la collecte sensible à l’énergie
  • Relié à une base de données d’environ 3 400 articles scientifiques connexes
Publicité

Livre numérique et éditions traduites

  • Le livre numérique est plus riche que l’édition imprimée et inclut plus de 37 000 hyperliens
    • Liens vers les chapitres, sections, algorithmes, schémas, glossaire, index et articles de recherche
  • En 2016, des traductions en chinois et en japonais ont été publiées, élargissant le lectorat

Ressources web

  • La base de données bibliographique en ligne comprend environ 3 400 articles sur le ramasse-miettes
    • Certaines entrées comportent un résumé, et la plupart fournissent une URL ou un DOI
    • Elle est mise à jour en continu et peut être téléchargée aux formats BibTeX, PostScript, PDF

1 commentaires

 
GN⁺ 2025-12-24
Avis sur Hacker News
  • Mon anecdote préférée sur le garbage collection se trouve dans ce billet

    • J’ai entendu dire que des approches similaires étaient utilisées ailleurs aussi. Par exemple, sur le Standard Missile, le fluide hydraulique n’est pas recyclé mais simplement évacué pendant le vol, ce qui constitue une solution d’ingénierie vraiment élégante
    • On pourrait appeler ça une sorte d’allocateur mémoire basé sur des régions. La seule différence, c’est qu’il n’existe qu’une seule région
    • C’est une approche assez standard. L’essentiel n’est pas un GC nul, mais le fait de prouver précisément les besoins mémoire par analyse statique
    • C’est une bonne leçon que je raconte souvent à mes collègues. Elle montre qu’on aimerait construire un logiciel parfait, mais qu’en pratique les exigences métier ne l’imposent pas toujours
    • J’aimerais appeler ça la véritable technique ultime de garbage collection
  • J’aimerais que le livre indique quels GC de production les auteurs ont réellement construits. Il existe tellement de cas non intuitifs dont on peut tirer des enseignements dans le monde réel qu’un livre couvrant cela serait bien plus intéressant et utile

  • C’est vraiment un excellent livre. Il y a aussi eu une discussion plus ancienne : lien vers la discussion précédente

  • Le livre contient une courte section sur le GC temps réel, et je me demande quelle place il accorde au GC dans des environnements contraints
    J’ai moi aussi depuis longtemps envie d’essayer de réaliser un jeu 3D de niveau AA avec du GC. À moins d’être sur une plateforme aux ressources extrêmement limitées, je pense que c’est tout à fait faisable
    Maintenant que j’ai un peu plus de marge au travail, je me dis que je pourrais peut-être faire un prototype cet hiver et ce printemps

    • La plupart des moteurs de jeux AA actuels utilisent déjà du GC. Unreal et Unity en sont des exemples représentatifs. Ils font aussi de la gestion mémoire manuelle en interne, mais leurs API exposées sont conçues en tenant compte du GC
      À l’inverse, Godot Engine n’utilise pas de GC et repose sur le comptage de références. Comme il ne prend pas en charge la détection des références circulaires, il faut organiser tous les objets en structure arborescente
    • Les systèmes de visée d’armes des navires de guerre de l’US Navy ainsi que les systèmes français de suivi de missiles sont eux aussi implémentés avec le GC temps réel de Java.
      Documentation associée : cas Thales, Aegis Combat System, cas de l’USS Bunker Hill
      Dans la réalité, tous les GC ne se valent pas, et il n’existe pas de chose comme « insert credit to continue »
    • Minecraft est aussi un jeu indépendant qui utilise le GC, tout en étant le jeu le plus vendu de l’histoire
    • Unreal Engine dispose d’un GC pour son graphe d’objets interne, donc beaucoup de jeux utilisent déjà le GC
    • Unreal utilise un GC incrémental
  • Ce livre est vraiment une référence exceptionnelle. Tout ingénieur qui utilise le GC devrait absolument le lire, et même pour ceux qui n’en ont pas besoin, la partie initiale sur les allocateurs mémoire est très instructive

  • J’ai ce livre moi aussi. C’est un ouvrage très bien écrit et minutieux, que je recommande vivement

  • J’ai autrefois suivi un cours du professeur Hosking. C’était une bonne expérience, et comme c’est lui qui a écrit ce livre, je l’ai acheté immédiatement
    Ce n’est pas indispensable, mais cela m’a aidé à comprendre en profondeur les problèmes de conception du GC et l’impact des finalizers. J’ai eu une vraie révélation en lisant cette partie

  • J’aimerais qu’il y ait un bouton « buy now » permettant d’acheter à la fois la version imprimée et le fichier EPUB. Le site fait la promotion du livre, mais le processus d’achat est beaucoup trop compliqué