В ядре Linux версии 3.9 будет существенно увеличена скорость работы алгоритма сжатия LZO

В ядро Linux версии 3.9 была включена доработанная версия алгоритма LZO, представленная Маркусом Оберхаммером (Markus Oberhumer), автором LZO (Lempel-Ziv-Oberhumer), в своем git-репозитории дерева ядра Linux на GitHub. В результате данного изменения на современных машинах ожидается довольно существенный рост производительности алгоритма сжатия LZO встроенного в ядро Linux 3.9.

Некоторые синтетические тесты производительности (взято из pull request): На x86_64 (Sandy Bridge), gcc-4.6 -O3, Silesia test corpus, блок 256 kB:

  • LZO-2005: 150 MB/sec сжатие, 468 MB/sec распаковка;
  • LZO-2012: 434 MB/sec сжатие, 1210 MB/sec распаковка;

На i386 (Sandy Bridge), gcc-4.6 -O3, Silesia test corpus, блок 256 kB:

  • LZO-2005: 143 MB/sec сжатие, 409 MB/sec распаковка;
  • LZO-2012: 372 MB/sec сжатие, 1121 MB/sec распаковка;

На armv7 (Cortex-A9), Linaro gcc-4.6 -O3, Silesia test corpus, блок 256 kB:

  • LZO-2005: 27 MB/sec сжатие, 84 MB/sec распаковка;
  • LZO-2012: 44 MB/sec сжатие, 117 MB/sec распаковка;
  • LZO-2013-UA: 47 MB/sec сжатие, 167 MB/sec (**) распаковка.

где, LZO-2005 — версия алгоритма LZO в ядре 3.8, базирующаяся на библиотеке LZO 2.02 (выпущена в 2005 году). LZO-2012 — обновленная версия алгоритма LZO из ветки linux-next. LZO-2013-UA — обновленная версия алгоритма LZO из ветки linux-next с экспериментальным патчем для невыровненного доступа на архитектуре ARM. Данный патч требует подтверждения от мэйнтейнеров архитектуры ARM и пока не включен.

Кроме того, известный разработчик ядра Эндрю Мортон (Andrew Morton) отметил что хотя есть алгоритм LZ4, который работает еще быстрее чем ускоренная версия LZO, существующие файловые системы и прочие подсистемы используют LZO и поэтому существенно выиграют от данного обновления.

©  OpenNet