spectras (./3898) :
je pensais notamment aux cas de serveurs, où les besoins de changement d'identité / de permissions ont lieu après initiation de la connexion (voire après la négociation SSL, le cas échéant). Initialiser un nouveau processus et lui transférer la requète via IPC (puis récupérer la réponse afin de la transmettre au client) serait une contre-performance notoire.
Tu n'a pas besoin de lancer un nouveau processus pour chaque requête, tu peux avoir un pool de processus déjà lancés et leur transmettre la requête quand elle arrive. Ça se fait aussi avec les threads d'ailleurs.
spectras (./3898) :
Pour le pre-linking en mémoire, l'idée est d'avoir un processus qui charge un ensemble de libs, ce qui les linke. Il peut alors lancer des programmes qui utilisent ces libs très rapidement, il n'a qu'à forker et les libs sont déjà prêtes, avec toutes les références résolues. Ça présente aussi l'avantage de permettre de réduire la mémoire consommée par chaque processus, car les structures dynamiques communes sont partagées sur des pages en copy-on-write. Je sais que kdeinit fait ça, il n'est sans doute pas le seul.
Je serais curieux de savoir combien de temps la résolution des références prend sur une machine moderne. Je me trompe peut-être, mais je doute que ce soit significatif.