Librerie di compressione

Sto facendo qualche test con delle librerie di compressione tese alle performance e per ora ne ho testate due:

La mia esigenza è molto semplice: comprimere uno stream di dati (una stringa) per salvarla su un database, perdendo il minor tempo possibile.

Questi i pro ed i contro delle due:

SharpZipLib
Pro: open source (leggasi: gratis e con sorgenti)
Contro: richiede una colonna in più per memorizzare le dimensioni dello stream, non ha funzioni "avanzate" per lavorare con i file ed il modello ad oggetti è abbastanza povero

XCeed
Pro: ha una serie molto evoluta di funzioni avanzate, molto comode se uno dovesse lavorare con dei file e complessivamente è estremamente ricca di feature e con un bel modello ad oggetti
Contro: costa

Come vedete, ne per l'una ne per l'altra ho messo la velocità, per un motivo molto semplice: vanno esattamente alla stessa velocità, e direi che questo è dovuto al fatto che sono entrambe scritte in codice Managed.

L'altro punto interessante della mia indagine è quanto comprimere o non comprimere i dati possa impattare sui tempi considerando anche il database. Facendo 6000 inserimenti per documenti XML di circa 20 Kb i risultati sono abbastanza sorprendenti: l'inserimento dei dati non compressi occupa 46 secondi, se invece salvo in un campo binario compresso la stessa operazione, ovviamente includendo il tempo speso per la compressione, ne occupa 31.

Ora la mia domanda è semplice, se vorrete lasciare un commento: conoscete librerie che magari, non essendo in codice managed, vadano più in fretta? E, seconda cosa, come vedreste un'applicazione in cui i vostri dati invece che in XML sono salvati in una colonna compressa e quindi fondamentalmente illeggibili se non da codice (avreste comunque gli strumenti di monitoraggio necessari a leggere i dati da un tool di amministrazione. Thanks in advance se qualcuno risponderà...

posted @ giovedì 30 novembre 2006 21:00

Print

Comments on this entry:

# re: Librerie di compressione

Left by Stefano Paparesta at 30/11/2006 21:34
Gravatar
Io uso Dynazip-NX (www.dynazip.com), non so dirti se sia più o meno veloce rispetto a quelle da te provate, ma mi funziona abbastanza bene.

# re: Librerie di compressione

Left by Stefano Ottaviani at 30/11/2006 22:15
Gravatar
Un'altra alternativa può essere http://www.zlib.net/ , che esiste per tantissime piattaforme ed è opensource + gratuita...ma non so come se la cavi a livello di prestazioni.

# re: Librerie di compressione

Left by Christian Paparelli at 30/11/2006 22:25
Gravatar
Altrimenti c'è sempre la gzip.dll usata da iis e inclusa in windows

# re: Librerie di compressione

Left by Raffaele Rialdi at 30/11/2006 22:54
Gravatar
Nel fx 3.0 c'è System.IO.Packaging.ZipPackage e il favoloso pack:// Uri per referenziare direttamente ai file interni a zip, xps e assembly.
Comments have been closed on this topic.