Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd add that lzma memory usage is accounted in [multiple?] GB per core for the highest compression levels. That amount of memory is a big no-no for mobile devices.


That’s for compression only isn’t it? I think lzma decompression requires a max of ~64Mb.

(Checks manpage) Yup:

  Preset   DictSize   CompCPU   CompMem   DecMem
  -0     256 KiB       0        3 MiB    1 MiB
  -1       1 MiB       1        9 MiB    2 MiB
  -2       2 MiB       2       17 MiB    3 MiB
  -3       4 MiB       3       32 MiB    5 MiB
  -4       4 MiB       4       48 MiB    5 MiB
  -5       8 MiB       5       94 MiB    9 MiB
  -6       8 MiB       6       94 MiB    9 MiB
  -7      16 MiB       6      186 MiB   17 MiB
  -8      32 MiB       6      370 MiB   33 MiB
  -9      64 MiB       6      674 MiB   65 MiB
Default of -6, so 8Mb. Doesn’t seem too unreasonable on a modern device.


Isn't it usually just the compression stage that's very demanding with these algorithms?


Yes for the most common algorithms. The compression takes a lot more memory than the decompression.

But... you still have to be careful with the decompression if you intend to support small devices. Be it a tiny embedded device (obvious issue) or an old generation $500 android phone where the JVM processes are limited to xx MB (less obvious issue).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: