bonjour,
j'ai une subroutine qui est récursive et qui fonctionne finement. Hélas,
la récupération mémoire semble ne pas se faire malgré des undef car il
semble que la récupération mémoire se fait à la sortie de la subroutine
et comme la subroutine est récursive, cela se fait uniquement à la
sortie de la subroutine donc tout à la fin :-(
je me pose la question de savoir si en mettant des blocs encadrés par
des {}, la place mémoire sera restitué en sortie de bloc ou pas ?
ça m"arrangerait bien car actuellement, je bouffe plus de 1.1 Go de
mémoire et ça commence à faire beaucoup
merci de vos réponses
Tu peux pas forcer le passage du gc : System.gc (); ??
heuuuu , il a pas posté sur fr.comp.lang.java ?
-- dominix
DoMinix
bonjour, j'ai une subroutine qui est récursive et qui fonctionne finement. Hélas, la récupération mémoire semble ne pas se faire malgré des undef car il semble que la récupération mémoire se fait à la sortie de la subroutine et comme la subroutine est récursive, cela se fait uniquement à la sortie de la subroutine donc tout à la fin :-( je me pose la question de savoir si en mettant des blocs encadrés par des {}, la place mémoire sera restitué en sortie de bloc ou pas ? ça m"arrangerait bien car actuellement, je bouffe plus de 1.1 Go de mémoire et ça commence à faire beaucoup merci de vos réponses
la mémoire est rendu a perl lorsque l'on sort d'un bloc, mais perl ne la rend pas forcement au systeme. Un appel a la procedure dans un eval() ou dans un fork sera plus efficace (selon ton OS), car la memoire sera rendue au systeme lorsque le subprocess se terminera.
-- dominix
bonjour,
j'ai une subroutine qui est récursive et qui fonctionne finement. Hélas,
la récupération mémoire semble ne pas se faire malgré des undef car il
semble que la récupération mémoire se fait à la sortie de la subroutine
et comme la subroutine est récursive, cela se fait uniquement à la
sortie de la subroutine donc tout à la fin :-(
je me pose la question de savoir si en mettant des blocs encadrés par
des {}, la place mémoire sera restitué en sortie de bloc ou pas ?
ça m"arrangerait bien car actuellement, je bouffe plus de 1.1 Go de
mémoire et ça commence à faire beaucoup
merci de vos réponses
la mémoire est rendu a perl lorsque l'on sort d'un bloc, mais perl
ne la rend pas forcement au systeme. Un appel a la procedure dans
un eval() ou dans un fork sera plus efficace (selon ton OS), car
la memoire sera rendue au systeme lorsque le subprocess se terminera.
bonjour, j'ai une subroutine qui est récursive et qui fonctionne finement. Hélas, la récupération mémoire semble ne pas se faire malgré des undef car il semble que la récupération mémoire se fait à la sortie de la subroutine et comme la subroutine est récursive, cela se fait uniquement à la sortie de la subroutine donc tout à la fin :-( je me pose la question de savoir si en mettant des blocs encadrés par des {}, la place mémoire sera restitué en sortie de bloc ou pas ? ça m"arrangerait bien car actuellement, je bouffe plus de 1.1 Go de mémoire et ça commence à faire beaucoup merci de vos réponses
la mémoire est rendu a perl lorsque l'on sort d'un bloc, mais perl ne la rend pas forcement au systeme. Un appel a la procedure dans un eval() ou dans un fork sera plus efficace (selon ton OS), car la memoire sera rendue au systeme lorsque le subprocess se terminera.
Le Mon, 27 Jun 2005 23:44:17 -1000, DoMinix a écrit :
Un appel a la procedure dans un eval() ou dans un fork sera plus efficace (selon ton OS)
Ce sera peut-être plus efficace pour la mémoire, mais ce sera beaucoup plus lent... Par contre rien n'empèche à priori de définir des blocs, même réentrants, à chaque cycle la mémoire sera libérée. Cependant la mémoire libérée ne sera pas nécessairement rendue au système immédiatement, mais là c'est l'OS qui décide tout seul...
-- Quis, quid, ubi, quibus auxiliis, cur, quomodo, quando
Le Mon, 27 Jun 2005 23:44:17 -1000, DoMinix a écrit :
Un appel a la procedure dans
un eval() ou dans un fork sera plus efficace (selon ton OS)
Ce sera peut-être plus efficace pour la mémoire, mais ce sera beaucoup
plus lent... Par contre rien n'empèche à priori de définir des blocs,
même réentrants, à chaque cycle la mémoire sera libérée. Cependant
la mémoire libérée ne sera pas nécessairement rendue au système
immédiatement, mais là c'est l'OS qui décide tout seul...
--
Quis, quid, ubi, quibus auxiliis, cur, quomodo, quando
Le Mon, 27 Jun 2005 23:44:17 -1000, DoMinix a écrit :
Un appel a la procedure dans un eval() ou dans un fork sera plus efficace (selon ton OS)
Ce sera peut-être plus efficace pour la mémoire, mais ce sera beaucoup plus lent... Par contre rien n'empèche à priori de définir des blocs, même réentrants, à chaque cycle la mémoire sera libérée. Cependant la mémoire libérée ne sera pas nécessairement rendue au système immédiatement, mais là c'est l'OS qui décide tout seul...
-- Quis, quid, ubi, quibus auxiliis, cur, quomodo, quando