Nuova sfavillante revisione con alcuni importanti
cambiamenti.
Come ovvio, la patch postata ieri è adesso già perfettamente integrata nel codice.
La novità più succosa è rappresentata dal fatto che la creazione del database è diventata talmente veloce che quasi non servirebbe più aggiornare le transazioni solo in base ai cambiamenti ma ricrearlo sempre da zero.

Se non ci credete, date un'occhiata a questi benchmark:
PRIMA- Codice: Seleziona tutto
Parsing the log "/var/log/pacman.log"
Parsed 29481 lines in 34.430000 seconds
Parsing the lib "/var/lib/pacman/local"
Parsed 1030 packages in 2.110000 seconds
DOPO- Codice: Seleziona tutto
Parsing the log "/var/log/pacman.log"
Parsed 29481 lines in 0.690000 seconds
Parsing the lib "/var/lib/pacman/local"
Parsed 1030 packages in 0.270000 seconds
Quasi mi vergogno a dire come ho raggiunto questi risultati, ma voglio consolarmi pensando che la ragione risieda nel fatto che il mirabolante cambiamento l'ho operato in una sezione del codice che derivava direttamente dal vecchio progetto.
Ovvio che poi i più curiosi possono sfogliare i
diff, trovare la banalissima ottimizzazione e deridermi in eterno.

Un'altra novità farà contenti gli utenti Arch più anziani, nel senso di utenti di sistemi installati da più tempo.

Il mio non è anziano, ma visto che ho installato Arch semplicemente copiando tutti i file da un altro computer, ecco che si spiega un file di log con entry vecchie anche di oltre cinque anni...
Tornando alla novità, si tratta del supporto al riconoscimento dei vecchi timestamp per transazioni e pacchetti, forsi non tutti lo sanno ma parecchio tempo fa la data e l'ora venivano memorizzate in maniera diversa:
[10/19/05 01:24] invece di
[2010-04-21 15:18] per il log,
Mon Nov 10 23:01:20 2003 invece di
1271276906 per la libreria dei pacchetti.
Last but not least, l'aggiunta di due nuovi grafici, entrambi mostrano il "tempo di sopravvivenza" di un pacchetto, ovvero per quanto tempo si è trovato o da quanto tempo si trova, rispettivamente se rimosso o ancora presente, installato sul sistema.
Così potrete togliervi qualche altra curiosità o meravigliarvi per un risultato inaspettato.

Come al solito non abbiate timore ad esporre suggerimenti o a farmi notare qualsiasi problema riscontriate.
Il programma sta maturando abbastanza per essere rilasciato in versione 0.1, ma gradirei ancora qualche feedback, provatelo numerosi!
NB: Il grafico sul tempo di sopravvivenza di un pacchetto rimosso è piuttosto lento a comparire, l'applicazione sembrerà bloccata per alcuni secondi, ma abbiate fede...
Poi se qualche mago dell'SQL vuole aiutarmi ad ottimizzare la query, tanto meglio.
