Ricerca nel sito web

Rilasciato l'algoritmo di compressione senza perdita LZ4 1.10


Algoritmo di compressione LZ4 1.10 rilasciato con supporto al multithreading, migliorando drasticamente la velocità di compressione fino a 8 volte.

LZ4, un algoritmo di compressione open-source multipiattaforma ampiamente utilizzato e noto per la sua velocità ed efficienza, ha appena raggiunto la versione 1.10.

Questo ultimo aggiornamento introduce miglioramenti significativi, in particolare il supporto al multithreading, che sfrutta i moderni processori multi-core per accelerare le attività di compressione e decompressione in ambienti ad alta produttività.

Per chi non lo sapesse, LZ4 è particolarmente apprezzato quando la velocità è più importante del rapporto di compressione, come nelle applicazioni di streaming o in tempo reale.

Novità in LZ4 1.10

Fino ad ora, LZ4 ha funzionato principalmente come processo a thread singolo. Tuttavia, la versione 1.10 cambia completamente questa situazione.

LZ4 Multithreading: Una Rivoluzione

La caratteristica principale di LZ4 1.10 è la sua capacità di multithreading. Consentendo a più thread di elaborare i dati contemporaneamente, LZ4 riduce notevolmente il tempo necessario per comprimere e decomprimere file di grandi dimensioni.

Questo è particolarmente vantaggioso quando si utilizzano modalità di alta compressione, che sono generalmente più intensive per la CPU. I benchmark più recenti illustrano chiaramente i miglioramenti su diversi sistemi operativi:

  • Su Windows 11, utilizzando una CPU AMD 7840HS, il tempo di compressione è migliorato da 13,4 secondi a soli 1,8 secondi, con un aumento di velocità di 7,4 volte.
  • Gli utenti macOS con il chip M1 Pro vedranno una riduzione da 16,6 secondi a 2,55 secondi, con una prestazione 6,5 volte più veloce.
  • Per gli utenti Linux su un i7-9700k, il tempo di compressione è stato ridotto da 16,2 secondi a 3,05 secondi, ottenendo un aumento di velocità di 5,4 volte.

Questi miglioramenti non si limitano solo alla compressione. Anche la decompressione beneficia del multithreading, sebbene in misura minore, poiché le moderne unità NVMe possono comunque essere saturate con un solo thread.

Tuttavia, la sovrapposizione delle operazioni di I/O con i processi di decompressione migliora ulteriormente le prestazioni.

Compressione del dizionario migliorata

Un altro miglioramento significativo in LZ4 1.10 è il supporto ufficiale per la compressione e decompressione tramite dizionario, che è passato da sperimentale a pienamente supportato.

Questo consente agli sviluppatori di utilizzare LZ4 in modo più affidabile in applicazioni che traggono vantaggio dalle tecniche con dizionario, come i trasferimenti di piccoli dati in cui l'inizializzazione può rappresentare un collo di bottiglia.

Nuovo livello di compressione e altri miglioramenti

LZ4 1.10 introduce una nuova opzione di compressione "Livello 2", che bilancia prestazioni e rapporto di compressione, offrendo una soluzione ottimale per molte applicazioni.

Inoltre, l'aggiornamento include numerosi miglioramenti, come un migliore supporto della piattaforma, una gestione degli errori migliorata e una configurazione più flessibile tramite variabili d'ambiente.

Infine, la versione supporta architetture meno conosciute come LoongArch, RISC-V e altre, garantendo la portabilità di LZ4 su diverse piattaforme.

Per una panoramica dettagliata di tutte le novità in LZ4 1.10, consulta il changelog completo.