[Python] Aggiornare file pickle

Filadelfo Fiamma philosganga a gmail.com
Lun 16 Maggio 2011 17:02:54 CEST


Il 16 maggio 2011 16:50, Luca Bacchi <bacchilu a gmail.com> ha scritto:
> Allora funziona come Word!
>
> ;-)
>
Per fortuna no :D !
Il problema sono i riferimenti degli oggetti, ecco perchè con i dati
semplici non dava questo problema... solved :) .. scusate
l'intasamento inutile della lista.

Ciao!

FF
>> Ciao ragazzi,
>> Vi ricontatto in merito alla discussione che ho aperto il 10 maggio.
>> Ricapitolando in breve, mi sono interessato nella gestione
>> incrementale dei file pickle, facendo in modo che il salvataggio
>> dell'intero oggetto non avvenga ad ogni dump(), ma che vada ad
>> interessare  solo la parte da aggiungere. In questo modo vengono
>> creati N file pickle che sono raggruppati alla fine del processo,
>> oppure su richiesta, in un unico file pickle.
>> Ho effettuato svariate prove, verificando il funzionamento del
>> processo, in particolar modo la correttezza delle informazioni: in
>> effetti cosi è.
>> L'unica anomalia che ho riscontrato è la dimensione del pickle: il
>> pickle creato dal raggruppamento di tutti i pickle di aggiornamento,
>> ha una dimensione maggiore rispetto a quanto aspettato (Il paragone è
>> stato fatto con la dimensione di un file pickle generato senza
>> gestione incrementale, in modo classico).
>> Premetto che non mi sono minimamente fidato di ricostruire "a mano"
>> l'oggetto, con il copia incolla dei pkl a livello testuale, bensì ho
>> ricostruito in memoria l'oggetto, che è un dizionario, ed ho
>> effettuato il dump finale.
>> Analizzando il contenuto testuale del pickle, ho notato l'aggiunta di
>> diverse righe (g5,g6,g7 ecc) ripetute per ogni chiave del dizionario.
>> Ho inoltre notato che, utilizzando tipi di dato semplice, non è
>> presente questa differenza nella dimensione.
>> Da cosa può dipendere questa anomalia, se di anomalia si tratta?
>>
>> Grazie mille
>> Buon pomeriggio a tutti
>>
>> FF
>>
>> >Il 10 maggio 2011 17:17, Filadelfo Fiamma <philosganga a gmail.com> ha scritto:
>> > Ringrazio tutti quanti :)
>> > Mi permetto di descrivere brevemente ciò che ho sperimentato, seppur
>> > esso non sia generica come applicazione, ma riesce a gestire oggetti
>> > fatti in questo modo: {key:[]}, nel mio caso è un log per gli accessi
>> > effettuati su di un certo file, ordinati cronologicamente.
>> >
>> > La classica dump() va a ricreare il mio log.pkl ogni qualvolta si
>> > effettua un accesso.
>> > La dump() modificata invece crea un file log_X.pkl, con X
>> > incrementale, che contiene solo l'accesso appena effettuato.
>> >
>> > La load() modificata dunque tiene di tutti i file log_X e li raggruppa
>> > per ottenere l'intero oggetto, in più si occupa anche di eliminare
>> > tutti i file log_X e di riunire tutta l'informazione in un unico file
>> > pkl, considerando che quest'azione avviene solo in fase di
>> > inizializzazione, ho ritenuto che fosse tollerabile rallentare questa
>> > fase per poter essere veloci nelle dump(), magari sarebbe opportuno
>> > effettuare questo raggruppamento ogni qualvolta si raggiunga un certo
>> > numero di file log_X.
>> >
>> > Ho effettuato il profiling inserendo 2000 volte la chiave 'pippo',
>> > avente come valore un indice incrementale.
>> > La dump() classica il computer ha impiegato 27.321 secondi
>> > La dump() modificata invece ha impiegato 4.114 secondi
>> >
>> > Buona serata a tutti
>> >
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



-- 
Filadelfo Fiamma
mail: philosganga a gmail.com


Maggiori informazioni sulla lista Python