J'ai un processus Python à long terme qui génère plus de données que prévu. Mes résultats sont stockés dans une liste qui sera sérialisée (décapée) et écrite sur le disque à la fin du programme - si cela arrive aussi loin. Mais à ce rythme, il est plus probable que la liste épuisera toutes les RAM de plus de 1 Go et que le processus se bloque, perdant tous mes résultats dans le processus.Comment accéder à une structure de données à partir d'un processus Python sous Linux?
Je prévois de modifier mon script pour écrire des résultats sur le disque périodiquement, mais je voudrais enregistrer les résultats du processus en cours si possible. Est-il possible de récupérer une structure de données en mémoire à partir d'un processus en cours et de l'écrire sur le disque?
J'ai trouvé code.interact(), mais comme je n'ai pas déjà ce hook dans mon code, ça ne me semble pas utile (Method to peek at a Python program running right now). Je cours Python 2.5 sur Fedora 8. Des pensées?
Merci beaucoup.
Shahin
Si vous l'enregistrez et que vous le rechargez, ne seriez-vous pas aussi démuni que vous le deviez? –
Dans ce cas particulier, je vais le transférer sur une autre machine (avec plus de mémoire) pour le désérialiser et soit le réécrire au coup par coup ou le charger directement dans une base de données. De toute évidence pas durable, mais je ne cherche qu'une solution temporaire. – Shahin