2016-02-18 10 views
5

A volte lavoro con set di dati molto grandi nei notebook IPython. A volte un singolo Panda DataFrame occupa 1 + GB di memoria, quindi non posso permettermi di conservare molte copie.Liberare memoria legata agli errori in IPython Notebook

Quello che ho trovato è che se provo a eseguire un'operazione su una tale matrice, e viene generato un errore, non riesco a recuperare la memoria - alcune variabili intermittenti vengono ancora rintracciate da qualche parte. Il problema è che non so dove e non posso liberarlo!

Ad esempio, l'immagine seguente mostra il consumo di memoria dopo ripetuti tentativi di esecuzione della cella (ogni fase del grafico corrisponde a un tentativo di esecuzione della cella). Ogni volta che viene consumato un nuovo blocco di memoria non viene mai rilasciato.

Memory usage while executing a cell that raises an error

Qualcuno sa dove questa memoria sta andando e come liberare in su? In alternativa, se questo è un bug (cioè perdita di memoria o simili), come lo si mostra? Non volevo segnalare questo come un bug se in realtà è l'effetto collaterale del codice che si comporta come progettato (ad esempio, IPython sta memorizzando nella cache cose e sto solo abusando del sistema di caching).

Grazie!

+0

Ho un problema simile con Jupyter che consuma troppa RAM. Non ho ancora identificato la fonte esatta del problema, ma Jupyter rimane sul server per giorni e i portatili sono spesso aperti e chiusi. Mi sono imbattuto in questo https://github.com/ipython/ipython/issues/8267 problema, e ho pensato che potrebbe essere in qualche modo interconnessi. La soluzione proposta (update 'jsonschema') non mi ha aiutato, ma potrebbe funzionare per voi –

+0

Grazie a @Pocin per il collegamento. Un altro problema è stato sollevato sul progetto jupyter: https://github.com/jupyter/notebook/issues/642. Forse puoi aggiungere un commento lì con la tua esperienza per aiutare gli sviluppatori a ottenere maggiori informazioni in merito. –

+0

Che piattaforma stai utilizzando e cosa stai usando per monitorare la memoria? Cercando di rintracciare i problemi correlati .. – dartdog

risposta

2

Per discussioni su github relative a issue 642, c'è una perdita di memoria nota in jsonschema 2.4. Dopo l'aggiornamento a jsonschema 2.5.1, non ho più avuto questo problema.

Quindi, se si utilizza un framework meno recente e si riscontra questo problema, è necessario aggiornare almeno jsonschema.