J'ai l'impression que vous cherchez plutôt une implémentation de
malloc/free utilisant mmap (et munmap) plutôt que sbrk à interposer
devant le malloc de la libc. Ça doit exister, mais je ne sais pas si une
des 15 implémentations de malloc livrées avec solaris le fait.
C'est exactement ça et je n'ai pas trouvé. Je me demande même si ça
existe...
J'ai l'impression que vous cherchez plutôt une implémentation de
malloc/free utilisant mmap (et munmap) plutôt que sbrk à interposer
devant le malloc de la libc. Ça doit exister, mais je ne sais pas si une
des 15 implémentations de malloc livrées avec solaris le fait.
C'est exactement ça et je n'ai pas trouvé. Je me demande même si ça
existe...
J'ai l'impression que vous cherchez plutôt une implémentation de
malloc/free utilisant mmap (et munmap) plutôt que sbrk à interposer
devant le malloc de la libc. Ça doit exister, mais je ne sais pas si une
des 15 implémentations de malloc livrées avec solaris le fait.
C'est exactement ça et je n'ai pas trouvé. Je me demande même si ça
existe...
In article ,
JKB wrote:J'ai l'impression que vous cherchez plutôt une implémentation de
malloc/free utilisant mmap (et munmap) plutôt que sbrk à interposer
devant le malloc de la libc. Ça doit exister, mais je ne sais pas si une
des 15 implémentations de malloc livrées avec solaris le fait.
C'est exactement ça et je n'ai pas trouvé. Je me demande même si ça
existe...
JKB
Marrant, en 10 minutes dans le code source de solaris, j'ai trouve une
implementation frustre, mais qui a l'air fonctionnelle mmapmalloc ou un
nom dans ce genre.
In article <slrngekv62.65k.knatschke@rayleigh.systella.fr>,
JKB <wilhelm-siegfried.knatschke-koenigsberg@chezmoi.com> wrote:
J'ai l'impression que vous cherchez plutôt une implémentation de
malloc/free utilisant mmap (et munmap) plutôt que sbrk à interposer
devant le malloc de la libc. Ça doit exister, mais je ne sais pas si une
des 15 implémentations de malloc livrées avec solaris le fait.
C'est exactement ça et je n'ai pas trouvé. Je me demande même si ça
existe...
JKB
Marrant, en 10 minutes dans le code source de solaris, j'ai trouve une
implementation frustre, mais qui a l'air fonctionnelle mmapmalloc ou un
nom dans ce genre.
In article ,
JKB wrote:J'ai l'impression que vous cherchez plutôt une implémentation de
malloc/free utilisant mmap (et munmap) plutôt que sbrk à interposer
devant le malloc de la libc. Ça doit exister, mais je ne sais pas si une
des 15 implémentations de malloc livrées avec solaris le fait.
C'est exactement ça et je n'ai pas trouvé. Je me demande même si ça
existe...
JKB
Marrant, en 10 minutes dans le code source de solaris, j'ai trouve une
implementation frustre, mais qui a l'air fonctionnelle mmapmalloc ou un
nom dans ce genre.
JKB wrote:
> Je viens de trouver un clear() qui semble vider le graph.
> Je vais de ce pas tester... en espérant que cela rende la
> mémoire au système et pas à l'application...
Il n'y a pas de raison, ça va juste faire un free.
C'est l'allocateur qu'il faut changer.
J'ai l'impression que vous cherchez plutôt une implémentation
de malloc/free utilisant mmap (et munmap) plutôt que sbrk à
interposer devant le malloc de la libc. Ça doit exister, mais
je ne sais pas si une des 15 implémentations de malloc livrées
avec solaris le fait.
JKB wrote:
> Je viens de trouver un clear() qui semble vider le graph.
> Je vais de ce pas tester... en espérant que cela rende la
> mémoire au système et pas à l'application...
Il n'y a pas de raison, ça va juste faire un free.
C'est l'allocateur qu'il faut changer.
J'ai l'impression que vous cherchez plutôt une implémentation
de malloc/free utilisant mmap (et munmap) plutôt que sbrk à
interposer devant le malloc de la libc. Ça doit exister, mais
je ne sais pas si une des 15 implémentations de malloc livrées
avec solaris le fait.
JKB wrote:
> Je viens de trouver un clear() qui semble vider le graph.
> Je vais de ce pas tester... en espérant que cela rende la
> mémoire au système et pas à l'application...
Il n'y a pas de raison, ça va juste faire un free.
C'est l'allocateur qu'il faut changer.
J'ai l'impression que vous cherchez plutôt une implémentation
de malloc/free utilisant mmap (et munmap) plutôt que sbrk à
interposer devant le malloc de la libc. Ça doit exister, mais
je ne sais pas si une des 15 implémentations de malloc livrées
avec solaris le fait.
Beaucoup d'implémentations de malloc utilisent mmap ; je crois
que c'est même le défaut sous Linux. Ce n'est pas pour autant
qu'il rend la mémoire au système. Le problème, c'est que les
implémentations de malloc prend (prèsque toujours) de gros blocs
du système, qu'elles découpent par la suite. Elles ne pourraient
donc rendre la mémoire au système qu'une fois tous les blocs
libérés, ce qui exige une analyse assez coûteuse, et qui
risquerait rarement d'aboutir. S'il veut rend la mémoire au
système, il faudrait bien qu'il le prend directement du système,
sans passer par malloc, afin que chaque bloc soit indépendant.
Il faudrait aussi qu'il étudie un peu comment le système gère la
mémoire : dans les Unix primitifs, par exemple, il fallait
pratiquement que tout le heap soit contigu.
Beaucoup d'implémentations de malloc utilisent mmap ; je crois
que c'est même le défaut sous Linux. Ce n'est pas pour autant
qu'il rend la mémoire au système. Le problème, c'est que les
implémentations de malloc prend (prèsque toujours) de gros blocs
du système, qu'elles découpent par la suite. Elles ne pourraient
donc rendre la mémoire au système qu'une fois tous les blocs
libérés, ce qui exige une analyse assez coûteuse, et qui
risquerait rarement d'aboutir. S'il veut rend la mémoire au
système, il faudrait bien qu'il le prend directement du système,
sans passer par malloc, afin que chaque bloc soit indépendant.
Il faudrait aussi qu'il étudie un peu comment le système gère la
mémoire : dans les Unix primitifs, par exemple, il fallait
pratiquement que tout le heap soit contigu.
Beaucoup d'implémentations de malloc utilisent mmap ; je crois
que c'est même le défaut sous Linux. Ce n'est pas pour autant
qu'il rend la mémoire au système. Le problème, c'est que les
implémentations de malloc prend (prèsque toujours) de gros blocs
du système, qu'elles découpent par la suite. Elles ne pourraient
donc rendre la mémoire au système qu'une fois tous les blocs
libérés, ce qui exige une analyse assez coûteuse, et qui
risquerait rarement d'aboutir. S'il veut rend la mémoire au
système, il faudrait bien qu'il le prend directement du système,
sans passer par malloc, afin que chaque bloc soit indépendant.
Il faudrait aussi qu'il étudie un peu comment le système gère la
mémoire : dans les Unix primitifs, par exemple, il fallait
pratiquement que tout le heap soit contigu.
In article
,
James Kanze wrote:
>Beaucoup d'implémentations de malloc utilisent mmap ; je crois
>que c'est même le défaut sous Linux. Ce n'est pas pour autant
>qu'il rend la mémoire au système. Le problème, c'est que les
>implémentations de malloc prend (prèsque toujours) de gros blocs
>du système, qu'elles découpent par la suite. Elles ne pourraient
>donc rendre la mémoire au système qu'une fois tous les blocs
>libérés, ce qui exige une analyse assez coûteuse, et qui
>risquerait rarement d'aboutir. S'il veut rend la mémoire au
>système, il faudrait bien qu'il le prend directement du système,
>sans passer par malloc, afin que chaque bloc soit indépendant.
>Il faudrait aussi qu'il étudie un peu comment le système gère la
>mémoire : dans les Unix primitifs, par exemple, il fallait
>pratiquement que tout le heap soit contigu.
Sur des Unix que je connais, il y a un seuil, souvent
parametrable, au-dessus duquel malloc est `desactive': ca ne
sert plus a rien de faire des trucs specifiques lorsque
l'utilisateur te demande 512M de memoire, tu te contentes
d'allouer, et souvent de liberer derriere.
In article
<63b6c91c-2ef0-42de-a589-8de19c10d...@s50g2000hsb.googlegroups.com>,
James Kanze <james.ka...@gmail.com> wrote:
>Beaucoup d'implémentations de malloc utilisent mmap ; je crois
>que c'est même le défaut sous Linux. Ce n'est pas pour autant
>qu'il rend la mémoire au système. Le problème, c'est que les
>implémentations de malloc prend (prèsque toujours) de gros blocs
>du système, qu'elles découpent par la suite. Elles ne pourraient
>donc rendre la mémoire au système qu'une fois tous les blocs
>libérés, ce qui exige une analyse assez coûteuse, et qui
>risquerait rarement d'aboutir. S'il veut rend la mémoire au
>système, il faudrait bien qu'il le prend directement du système,
>sans passer par malloc, afin que chaque bloc soit indépendant.
>Il faudrait aussi qu'il étudie un peu comment le système gère la
>mémoire : dans les Unix primitifs, par exemple, il fallait
>pratiquement que tout le heap soit contigu.
Sur des Unix que je connais, il y a un seuil, souvent
parametrable, au-dessus duquel malloc est `desactive': ca ne
sert plus a rien de faire des trucs specifiques lorsque
l'utilisateur te demande 512M de memoire, tu te contentes
d'allouer, et souvent de liberer derriere.
In article
,
James Kanze wrote:
>Beaucoup d'implémentations de malloc utilisent mmap ; je crois
>que c'est même le défaut sous Linux. Ce n'est pas pour autant
>qu'il rend la mémoire au système. Le problème, c'est que les
>implémentations de malloc prend (prèsque toujours) de gros blocs
>du système, qu'elles découpent par la suite. Elles ne pourraient
>donc rendre la mémoire au système qu'une fois tous les blocs
>libérés, ce qui exige une analyse assez coûteuse, et qui
>risquerait rarement d'aboutir. S'il veut rend la mémoire au
>système, il faudrait bien qu'il le prend directement du système,
>sans passer par malloc, afin que chaque bloc soit indépendant.
>Il faudrait aussi qu'il étudie un peu comment le système gère la
>mémoire : dans les Unix primitifs, par exemple, il fallait
>pratiquement que tout le heap soit contigu.
Sur des Unix que je connais, il y a un seuil, souvent
parametrable, au-dessus duquel malloc est `desactive': ca ne
sert plus a rien de faire des trucs specifiques lorsque
l'utilisateur te demande 512M de memoire, tu te contentes
d'allouer, et souvent de liberer derriere.