|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 11186
|
[Python] Dare un boost di velocita` all' I/O. Come?
Salve a tutti,
Sto scrivendo un breve e semplice programma che effettua operazioni di I/O su file binari di grandi dimensioni con le istruzioni built-in open() e read(). Purtroppo la velocita` di operazione e` molto bassa, e processare file di svariati megabyte di dimensione e` praticamente impossibile. Ed avrei per giunta anche la necessita` di scrivere file di dimensioni altrettante elevate. E` possibile in Python 2.6 qualcosa di simile al buffered reader/writer di Java, che esegue tutto in memoria ram con notevole vantaggio prestazionale rispetto all'operazione diretta sui file?
__________________
~
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Hai due soluzioni per risolvere il tuo problema:
http://docs.python.org/library/io.html http://docs.python.org/library/stringio.html La prima è usando l'I/O bufferizzato. La seconda è usando le stringhe come fossero dei file, ma ovviamente lettura e scrittura sono molto più velocizzate, perché sta tutto in memoria. Quindi puoi usarle per leggere un grosso blocco di dati, e processarlo in memoria con questo modulo, oppure per generare un grosso blocco di dati, da scrivere poi in un colpo solo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 11186
|
Sembra che sia cio` che faccia al caso mio, specie la seconda opzione, molto interessante. Me la studio un po', poi eventualmente posto i risultati.
Grazie
__________________
~
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:09.


















