Weekly Shaarli

All links of one week in a single page.

Week 11 (March 13, 2023)

Véronique Durand "La cigogne aux œufs d’or – Marchandisation de la petite enfance" @ YouTube

La cigogne depuis des millénaires ayant fort à faire,
commence avec les années à un peu s'épuiser.
Il faut dire qu'en France depuis la Libération,
des bébés à foison elle a dû augmenter la production.
Alors pour la seconder et l'aider à faire pousser en bonne santé de jolis bambins,
elle a organisé de beaux et grands jardins.
Derrière ce joli parchemin c'est aussi les mères qu'il fallait envoyer au turbin.
C'est ainsi qu'au fil des découvertes en éducation,
fleurirent de jolis appellations : asile, pouponnière, bambina, garderie, jardin d'enfants, crèche multi-accueil, etc.
Des lieux pensés pour accompagner les avancées de la société en parentalité.
Pendant fort longtemps ces jardins idylliques, tels des ruches animées par moult abeilles laborieuses, par les deniers publics furent-ils financés.
Vivent les citoyens en barboteuse !
Or par les temps nouveaux qui sévissaient alors,
point d'argent public gaspillé il ne fallait puiser encore.
C'est ainsi qu'un beau jour de 2004,
aux mains philanthropes de quelques marchands psychopathes,
le grand argentier des cigognes, les clés des portes des jardins leur a filé.
De bébés et de blé ce sont de bien étranges moissons qui dorénavant rythment nos saisons.

C'est ça que j'ai envie de vous raconter aujourd'hui :
comment cette fable elle a été rendue possible.

Une passionnante conférence gesticulée, actuellement en tournée !

Introduction — pymemtrace 0.1.1 documentation

This describes tools and techniques that can identify memory leaks in Long running Python programs:

  • Is it a Leak?
  • Sources of Leaks
  • A Bit About (C)Python Memory Management
    • Reference Counts
    • Garbage Collection
    • The Big Picture
    • CPython’s Object Allocator (pymalloc)

Here is a visualisation of memory allocators from top to bottom (from the Python source Objects/obmalloc.c):

    _____   ______   ______       ________
   [ int ] [ dict ] [ list ] ... [ string ]       Python core         |
+3 | <----- Object-specific memory -----> | <-- Non-object memory --> |
    _______________________________       |                           |
   [   Python's object allocator   ]      |                           |
+2 | ####### Object memory ####### | <------ Internal buffers ------> |
    ______________________________________________________________    |
   [          Python's raw memory allocator (PyMem_ API)          ]   |
+1 | <----- Python memory (under PyMem manager's control) ------> |   |
    __________________________________________________________________
   [    Underlying general-purpose allocator (ex: C library malloc)   ]
 0 | <------ Virtual memory allocated for the python process -------> |

   =========================================================================
    _______________________________________________________________________
   [                OS-specific Virtual Memory Manager (VMM)               ]
-1 | <--- Kernel dynamic storage allocation & management (page-based) ---> |
    __________________________________   __________________________________
   [                                  ] [                                  ]
-2 | <-- Physical memory: ROM/RAM --> | | <-- Secondary storage (swap) --> |