Salut !
Yves Martin wrote:
> En cherchant un problème de performance avec l'APC PHP, un collègue et moi
> essayons de comprendre pourquoi la "shared memory" provient d'un "mmap" issu
> de /dev/zero:
> http://www.php.net/manual/fr/apc.configuration.php#ini.apc.mmap-file-mask
>
> Est-ce le code C de l'APC qui implémente cette façon particulière du faire du mmap anonyme ?
>
> Ou alors est-ce l'implémentation sous-jacente du kernel Linux de l'option MAP_ANONYMOUS ?
Normalement quand tu fais un mmap anonyme, il n'y a pas de fichier
associé. C.f. man mmap :
MAP_ANONYMOUS
The mapping is not backed by any file; its contents are initial‐
ized to zero. The fd and offset arguments are ignored; however,
some implementations require fd to be -1 if MAP_ANONYMOUS (or
MAP_ANON) is specified, and portable applications should ensure
this. The use of MAP_ANONYMOUS in conjunction with MAP_SHARED
is only supported on Linux since kernel 2.4.
Ci-dessus l'argument fd est le descripteur de fichier.
D'ailleurs, si tu fais un strace d'un processus quelconque, tu verras
plein de mmap anonymes avec fd = -1.
Edgar.