Je ne sais passi l'onappelle cela une "fuite m=E9moire", mais voici mon
probl=E8me : j'ai fais un script Perl qui semble utiliser beaucoup de m=E9
moire, je vous copie-colle le r=E9sultat de la commande "top"
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4211 user1 16 0 436m 64m 5360 S 0.0 51.9 4:01.49 perl
pour info, dans mon script, je lance des Threads, mais jamais je ne lui
dis de lib=E9rer ces threads, il faut le faire ? ou alors l'interpreteur
perl le fait automatiquement ?
Donc, je ne sais pas vraiment comment optimiser mon script de fa=E7on =E0 ce
qu'il utilise moins de ressourecs.
voici mes questions :
- est-ce bien un probl=E8me de m=E9moire ?
- les threads sont ils probablement en cause ?
- si oui, comment faire pour lib=E9rer les threads ?
Je vous remercie de l'aide que vous pourrez m'apporter.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Delf
pour info, dans mon script, je lance des Threads, mais jamais je ne lui dis de libérer ces threads, il faut le faire ? ou alors l'interpreteur perl le fait automatiquement ?
Donc, je ne sais pas vraiment comment optimiser mon script de façon à ce qu'il utilise moins de ressourecs.
voici mes questions : - est-ce bien un problème de mémoire ? - les threads sont ils probablement en cause ? - si oui, comment faire pour libérer les threads ?
J'ai eu le meme problème apparemment:
MonThread->detach;
(Mes threads retournent *rien*)
-- Delf
pour info, dans mon script, je lance des Threads, mais jamais je ne lui
dis de libérer ces threads, il faut le faire ? ou alors l'interpreteur
perl le fait automatiquement ?
Donc, je ne sais pas vraiment comment optimiser mon script de façon à ce
qu'il utilise moins de ressourecs.
voici mes questions :
- est-ce bien un problème de mémoire ?
- les threads sont ils probablement en cause ?
- si oui, comment faire pour libérer les threads ?
pour info, dans mon script, je lance des Threads, mais jamais je ne lui dis de libérer ces threads, il faut le faire ? ou alors l'interpreteur perl le fait automatiquement ?
Donc, je ne sais pas vraiment comment optimiser mon script de façon à ce qu'il utilise moins de ressourecs.
voici mes questions : - est-ce bien un problème de mémoire ? - les threads sont ils probablement en cause ? - si oui, comment faire pour libérer les threads ?
J'ai eu le meme problème apparemment:
MonThread->detach;
(Mes threads retournent *rien*)
-- Delf
Stephane Zuckerman
Bonsoir,
On Sat, 27 Nov 2004, Delf wrote:
voici mes questions : - est-ce bien un problème de mémoire ? - les threads sont ils probablement en cause ? - si oui, comment faire pour libérer les threads ?
J'ai eu le meme problème apparemment:
MonThread->detach;
(Mes threads retournent *rien*)
De ce que je vois, les threads en Perl sont POSIX. Donc le fait de faire un detach() permet de les rendre indépendants du reste du programme (ce qui a pour résultat d'effectivement laisser les threads se terminer tous seuls). Sans faire le detach(), un thread qui se termine attend qu'un thread ait fait un join() (je parle en termes de programmation C, il faudrait vérifier la documentation spécifique à Perl. En C, les pages concernées sont pthread_create(), pthread_detach(), pthread_join(), et pthread_exit()).
Stéphane
-- "Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce que je veux !" "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." (Bill Gates, The Road Ahead)
Bonsoir,
On Sat, 27 Nov 2004, Delf wrote:
voici mes questions :
- est-ce bien un problème de mémoire ?
- les threads sont ils probablement en cause ?
- si oui, comment faire pour libérer les threads ?
J'ai eu le meme problème apparemment:
MonThread->detach;
(Mes threads retournent *rien*)
De ce que je vois, les threads en Perl sont POSIX. Donc le fait de faire
un detach() permet de les rendre indépendants du reste du programme (ce
qui a pour résultat d'effectivement laisser les threads se terminer tous
seuls). Sans faire le detach(), un thread qui se termine attend qu'un
thread ait fait un join() (je parle en termes de programmation C, il
faudrait vérifier la documentation spécifique à Perl. En C, les pages
concernées sont pthread_create(), pthread_detach(), pthread_join(), et
pthread_exit()).
Stéphane
--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)
voici mes questions : - est-ce bien un problème de mémoire ? - les threads sont ils probablement en cause ? - si oui, comment faire pour libérer les threads ?
J'ai eu le meme problème apparemment:
MonThread->detach;
(Mes threads retournent *rien*)
De ce que je vois, les threads en Perl sont POSIX. Donc le fait de faire un detach() permet de les rendre indépendants du reste du programme (ce qui a pour résultat d'effectivement laisser les threads se terminer tous seuls). Sans faire le detach(), un thread qui se termine attend qu'un thread ait fait un join() (je parle en termes de programmation C, il faudrait vérifier la documentation spécifique à Perl. En C, les pages concernées sont pthread_create(), pthread_detach(), pthread_join(), et pthread_exit()).
Stéphane
-- "Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce que je veux !" "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." (Bill Gates, The Road Ahead)