Bonjour à tous,
Je vais essayer d'être le plus clair possible car mon problème est un peu compliqué à expliquer.
J'ai créé un script en Perl qui utilise des threads pour effectuer 4 grosses opérations (par itération).
Il y a 256 itérations donc les 4 opérations sont exécutées 256 fois pour une durée totale d'environ 11h si le script parvient à ses fins (2mn35 par itération).
Le problème c'est qu'au bout d'environ 50 itérations (c'est variable) j'obtiens
une erreur de ce type : "Free to wrong pool 15d59a8 not 280afec8 at C:/Perl/lib/XSLoader.pm line -1"
Je suppose que cela est du à une consommation excessive de la mémoire CPU ce qui engendre des erreurs mais je n'en suis pas sur. En fait j'ai des pics de consommation CPU comme le montre l'image en pièce-jointe.
J'ai essayé d'utiliser les sémaphores mais sans grand succès.
Donc savez-vous d'où vient mon erreur et si oui comment faire pour régler ce problème.
P.S: Est-ce que je gère bien mes threads, je fais des join mais est-ce que cela suffit pour réellement bien les nettoyer ??
Merci d'avance.
Partager