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