[Python] Python e saturazione CPU
Ciao a tutti, Trovo sempre ispirazione ma soprattutto soluzioni in questo forum. Mi scontro con il seguente problema: Macchina virtuale con XP (non uccidetemi) sopra una Debian su I5 con 4 gb di ram. La macchina virtuale è limitata a 1 cpu con 1,5 gb ram. Ho uno script python dentro XP che apre un file testuale da 1,2 mb (scarsi) e fa una readlines() Poi usa alcune cose di wx (una wx.ProgressDialog) Da li parte con un ciclo for all' interno di readlines per leggere tutte le righe e con queste produrre altri documenti txt. In soldoni: prende il file grande e ne fa tanti di piccoli in base ai contenuti delle righe. Ora il tutto funziona egregiamente tuttavia: All'inizio è una scheggia, ma mano a mano che l'elaborazione procede la cpu si satura e il tutto entra in agonia e non finisce mai (un minuto per elaborare 50 righe) e dovendo elaborare 25/30 mila righe impiega ore. Mi pare strano tanto che ho tolto la readlines() e ho impostato un readline() per leggere una riga alla volta anziché caricare tutto in memoria tanto per vedere se la situazione cambiava ma niente. Tale e quale. Mi sa tanto da problema sulla virtuale. Cosa suggerite? Grazie per il vostro tempo. -- Riccardo Brazzale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
Riccardo Brazzale: > Cosa suggerite? posta il codice :-) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
Il 19 novembre 2014 16:49, Riccardo Brazzale ha scritto: > ... prende il file grande e ne fa tanti di > piccoli in base ai contenuti delle righe. > All'inizio è una scheggia, ma mano a mano che l'elaborazione procede la cpu > si satura e il tutto entra in agonia Incolla il codice su pastebin ;) altrimenti ci serve una palla di vetro :D Pace, R> ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
2014-11-19 16:49 GMT+01:00 Riccardo Brazzale : > Cosa suggerite? > Prova a spostare quel for oppure aumentare la dimensione di quella lista prematurata. Se non funziona, prova a postare il tuo codice da qualche parte, si può fare di più così :-)) Ciao. Marco. -- http://beri.it/ - Un blog http://beri.it/i-miei-libri/ - Qualche libro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
Il giorno 19 novembre 2014 16:59, Simone Federici ha scritto: > > > posta il codice :-) > Eccolo: abbiate pietà di me http://pastebin.com/efhwxeTq Grazie. -- Riccardo Brazzale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
Il 19/11/2014 17:42, Riccardo Brazzale ha scritto: http://pastebin.com/efhwxeTq cambiare rows = fin.readlines() for row in rows: in for row in fin: dovrebbe farti risparmiare diversa memoria se hai tante righe. Magari la cpu era alta perchè stavi swappando? riccardo ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
anche la chiusura del file in input dovrebbe andare alla fine On Wednesday, November 19, 2014, Riccardo Magliocchetti < riccardo.magliocche...@gmail.com> wrote: > Il 19/11/2014 17:42, Riccardo Brazzale ha scritto: > >> http://pastebin.com/efhwxeTq >> > > cambiare > rows = fin.readlines() > for row in rows: > in > for row in fin: > > dovrebbe farti risparmiare diversa memoria se hai tante righe. Magari la > cpu era alta perchè stavi swappando? > > riccardo > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > -- Simone Federici Software Craftsman XP, Agile, Scrum, Kanban Quality, performance & security Explicit is better than implicit. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
On 11/19/2014 08:43 PM, Simone Federici wrote: anche la chiusura del file in input dovrebbe andare alla fine Per la chiusura dei file, suggerirei di usare il costrutto with: with open(filein, 'r') as fin, open(writeto + fileout, "w") as fou: #resto del codice Enrico ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python e saturazione CPU
Il giorno 21 novembre 2014 00:03, Enrico Bianchi ha scritto: > >> Per la chiusura dei file, suggerirei di usare il costrutto with: > > with open(filein, 'r') as fin, open(writeto + fileout, "w") as fou: > #resto del codice Per prima cosa GRAZIE a tutti. Il problema, come sospettavo, in realta' era sulla vm. Ho abilitato l'accelerazione 3D per lo schermo e il problema e' sparito. Ciao. -- Riccardo Brazzale ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python