La version naïve utilisant read/write atteint environ 3.7 GiB/s à cause de double copie et d’allocation de pages.
Les appels vmsplice et splice permettent un transfert sans copie, portant le débit à ~33 GiB/s.
L’utilisation de huge pages (2 MiB) accélère get_user_pages, augmentant le débit à ~51 GiB/s.
Le passage à une boucle d’attente active (busy looping) supprime la surcharge de synchronisation, atteignant ~62.5 GiB/s.
Le post explique les internals des pipes Linux : tampons circulaires, struct page et traduction mémoire virtuelle.
Get notified when new stories are published for "🇫🇷 Hacker News Français"