si tu penses à l'optimisation de malloc/free.
Je pense au fait qu'aujourd'hui, sur certaine machines, le cache est trop gros pour avoir une complete couverture par la TLB (lire dans le document de mon second lien).
Par "couverture", je parle de la traduction Memoire Virtuelle => Memoire Physique.
Augmenter la taille des pages etend la couverture de la TLB, et donc limite le nombre de Page Fault (zone virtuelle non decrite dans la TLB, ce qui necessite une serie d'acces en memoire, tres couteuse, permettant de trouver la description, si elle existe, Memoire Virtuelle => Memoire Physique.
Mais, augmenter la taille des pages peut etre a l'origine de gachis. Il suffit de penser a la taille de bloc dans les systemes de fichier. Plus c'est gros, plus tu as de chance de "perdre" de la memoire. Si une application n'a besoin que de 2Ko, tu perds moins de memoire en allouant 4ko au lieu de 16ko par exemple.
Quand je parle d'allocation, c'est pas malloc/free, mais dans la VM.
[^] # Re: Il manque
Posté par mdlh . En réponse à la dépêche Sortie du noyau 2.6.11. Évalué à 6.
Je pense au fait qu'aujourd'hui, sur certaine machines, le cache est trop gros pour avoir une complete couverture par la TLB (lire dans le document de mon second lien).
Par "couverture", je parle de la traduction Memoire Virtuelle => Memoire Physique.
Augmenter la taille des pages etend la couverture de la TLB, et donc limite le nombre de Page Fault (zone virtuelle non decrite dans la TLB, ce qui necessite une serie d'acces en memoire, tres couteuse, permettant de trouver la description, si elle existe, Memoire Virtuelle => Memoire Physique.
Mais, augmenter la taille des pages peut etre a l'origine de gachis. Il suffit de penser a la taille de bloc dans les systemes de fichier. Plus c'est gros, plus tu as de chance de "perdre" de la memoire. Si une application n'a besoin que de 2Ko, tu perds moins de memoire en allouant 4ko au lieu de 16ko par exemple.
Quand je parle d'allocation, c'est pas malloc/free, mais dans la VM.
Bon quelques liens:
http://www.gelato.unsw.edu.au/IA64wiki/NPTLbenchmarks(...)
C'est plutot un bench qui a ete fait lors de l'implementation des NPTL. Mais par contre il montre l'influence de la taille d'une page.
http://www.cs.rice.edu/~ssiyer/r/superpages/(...)
Un document expliquant la problematique surement mieux que moi et une possible mise en oeuvre (pour FreeBSD).