Se hai 16 GiB di RAM (e nient'altro in esecuzione), puoi provare:
tar -cf - foo/ | xz --lzma2=dict=1536Mi,nice=273 -c - > foo.tar.xz
Ciò richiederà 1,5 GiB per la decompressione e circa 11 volte quello per la compressione. Regolare di conseguenza per minori quantità di memoria.
Questo aiuterà solo se i dati sono in realtà così grande, e in ogni caso non aiuterà CHE molto, ma ancora ...
Se stai comprimendo i binari, aggiungi --x86 come prima opzione xz. Se stai giocando con file "multimediali" (audio non compresso o bitmap), puoi provare con --delta = dist = 2 (sperimenta con il valore, i buoni valori da provare sono 1..4).
Se ti senti molto avventuroso, puoi provare a giocare con più opzioni LZMA, come
--lzma2=dict=1536Mi,nice=273,lc=3,lp=0,pb=2
(queste sono le impostazioni predefinite, puoi provare valori compresi tra 0 e 4 e lc + lp non deve superare 4)
Per vedere come i preset predefiniti sono associati a questi valori, è possibile controllare il file sorgente src / liblzma / lzma / lzma_encoder_presets.c. Non c'è nulla di molto interessante lì (-e imposta la bella lunghezza su 273 e regola anche la profondità).
man 1 xz
diceit's not a good idea to blindly use -9 for everything like it often is with gzip(1) and bzip2(1).
-7 ... -9 [...] These are useful only when compressing files bigger than 8 MiB, 16 MiB, and 32 MiB, respectively.
RTFM per maggiori informazioni.