Je crois que j'ai un problème de mémoire en utilisant des tableaux numpy. Le code suivant est en cours d'exécution pendant des heures:Problème de mémoire de tableau Numpy
new_data = npy.array([new_x, new_y1, new_y2, new_y3])
private.data = npy.row_stack([private.data, new_data])
où new_x, new_y1, new_y2, new_y3 sont flotteurs.
Après environ 5 heures d'enregistrement de ces données toutes les secondes (plus de 72000 flotteurs), le programme ne répond plus. Ce qui se passe, à mon avis, c'est une sorte d'opération de réaffectation et de copie qui submerge le processus. Est-ce que quelqu'un sait si c'est ce qui se passe?
J'ai besoin d'un moyen d'enregistrer ces données sans rencontrer ce problème de ralentissement. Il n'y a aucun moyen de connaître même approximativement la taille de ce tableau au préalable. Il n'a pas nécessairement besoin d'utiliser un tableau numpy, mais il doit être quelque chose de similaire. Est-ce que quelqu'un sait d'une bonne méthode?
Bonne idée. 'npy.empty' semble plus approprié que' npy.zeros' (et est probablement un peu plus rapide). – EOL
C'est vraiment rapide. Encapsuler ceci dans une classe avec une méthode row_stack serait bien. – EOL
Notez que 'private.data [rowctr] = ...' est beaucoup plus rapide que '[rowctr,:]'. – EOL