[Python] Memory error
Daniele Varrazzo
piro a develer.com
Mer 3 Nov 2010 18:28:50 CET
On Wed, 03 Nov 2010 18:16:57 +0100, CoPlast SRL <listemessaggi a coplast.eu>
wrote:
> Il 03/11/2010 18:03, Daniele Varrazzo ha scritto:
>>
>> Cioè il file non viene scritto, non che non viene letto? Scusa, ma io
>> non
>> riesco a seguirti bene: prova a spiegare passo passo cosa fanno i tuoi
>> programmi e che errore avviene...
>>
>> Tieni anche conto che non so cosa sia un codice EIA/ISO (quanto è
lungo?
>> che set di caratteri?) e che voglia dire CNC (ok, ho googlato e ora lo
>> so,
>> ma questa non è una lista di esperti di processi industriali: se corri
>> troppo ci lasci dietro ;) quindi non ho ancora capiro quando dici
>> "100MB" a
>> cosa ti riferisci (hai fatto n. stringhe * lunghezza stringhe? è un
>> file?
>> ecc...)
>>
> Non ti offendere se non ti rispondo subito ma sono preso male perciò
> sono quì a formulare altre domande:
> 1. una lista di 1.000.000 di elementi dove ogni elemento è una stringa
> di 20 caratteri è più pesante di un unica stringa di 20.000.000 di
> caratteri?
Sì, c'è un pò di overhead in più, ma non credo tantissimo. Potrebbero
essere 8 byte per stringa, ma anche se l'occupazione fosse, metti, il
doppio, il tuo computer dovrebbe essere in grado di gestire 200 MB...
> 2. la mega lista di cui sopra vado ad aggiungerla ad un oggetto Queue,
> che possa essere questo a generare l'eccezzione? E se gli aggiungo la
> grossa stringa anzichè la lista che sia lo stesso?
Non credo: la Queue aggiunge solo un riferimento alla lista, non la copia
(nota che non hai detto quale istruzione genera l'eccezione...). Beh, a
meno che non sia una Queue di multiprocessing, di cui non conosco bene il
ciclo di vita ma mi aspetto che a un certo punto faccia un pickle di tutto
e quindi si prenda una bella fetta di memoria...
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
Maggiori informazioni sulla lista
Python