• # Moteur SQL

    Posté par . En réponse au message "Processus arrêté". Évalué à 1. Dernière modification le 08 octobre 2020 à 18:57.

    Si ces données sont structurées, pourquoi ne pas importer tout cela dans un serveur sql qui saura correctement gérer la mémoire et travailler avec des fichiers d'échanges le cas nécessaire ?

    Sinon pour répondre à tes questions, non python n'alloue pas des buffeurs énormes pour faire des I/O. Étant donné qu'il n'y a que deux fichiers (entrée et sortie), il est très peu probable que ceci soit la source de tes problèmes. Il est probable que la mémoire soit utilisée par tes listes justement, surtout si tu utilises beaucoup de listes intermédiaires. En ce qui concerne le ramasse-miette, python utilise également ce concept tout comme java, sauf qu'il se base sur le comptage de référence, là où java analyse le graphe des valeurs accessibles. Hormis cette différence d'implémentation, ceux-ci ont la même fonction. Il faut bien faire attention de ne pas garder de références sur les résultats intermédiaires plus longtemps que nécessaire, afin de permette la libération de la mémoire utilisée par ceux-ci.

    Suggestions: utiliser les générateurs/itérateurs, activer plus de swap, calculer un l'ordre de grandeur de la mémoire nécessaire et vérifier la faisabilité, éviter de lire tout le fichier d'un coup (faire du ligne-à-ligne ou utiliser mmap).