[devel] ускорение lzma декомпрессии (XZ Utils)

Andrey Savchenko bircoph на altlinux.org
Вт Дек 14 18:22:24 MSK 2021


On Mon, 13 Dec 2021 21:52:42 +0700 Ilya Kurdyukov wrote:
> Я думаю, что финальная версия (патч по ссылке обновлён).

Думаю, что для апстрима нужно сделать проверку на наличие cmov на
этапе configure и добавить проверку этого define в строке:
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))

cmov есть не на всех i386 (нет на <i686 и некоторых сторонних
моделях i686). Понятно, что такое железо сейчас редко используется,
но всё же. Тем более, что проверка build-time и на run-time не
влияет. Если по какой-то причине нужно run-time сделать, следует
смотреть регистры cpuid.

> Билд питона теперь разжимается 42% быстрее.
> 
> Бинарники Firefox с данными - 21% быстрее.
> 
> Исходники ядра Линукс - 10% быстрее.
> 
> Но нужно еще проверить на разных моделях x86 процессоров, что я сделать 
> не смогу.
> 
> On 13.12.2021 18:59, Ilya Kurdyukov wrote:
> > Оказалось что ускорение со сжатых текстовых данных очень маленькое, 
> > только +4% с исходников ядра линукс. И на процессоре AMD на этих 
> > исходниках вообще +1%. Но я попробую это исправить.
> >
> > На бинарниках и данных Firefox (/usr/lib/firefox) выходит +11% ускорение.
> >
> > On 13.12.2021 16:02, Ilya Kurdyukov wrote:
> >> Заменил ветвление в LZMA декомпрессоре на ассемблерную вставку с 
> >> CMOV, на моём компьютере даёт 35% ускорение при распаковке 300мб из 
> >> сжатой билд директории от Python 3.
> >>
> >> На шлюзе basalt нормально проверить не получается, потому что на нём 
> >> переменная нагрузка, то с патчем 10-20% быстрее, а иногда без патча 
> >> получается быстрее. Мне нужна помощь в проверке.
> >>
> >> Может сильно зависеть от модели процессора.
> >>
> >> Патч: 
> >> https://gist.github.com/ilyakurdyukov/f514418f3affd677e1ac408ec0c09188
> >>
> >> На x86 (32-бит) не проверял, но тоже должно работать.
> >>
> >> Если будет стабильное ускорение, но можно предложить в апстрим.
> >>
> >> _______________________________________________
> >> Devel mailing list
> >> Devel на lists.altlinux.org
> >> https://lists.altlinux.org/mailman/listinfo/devel
> > _______________________________________________
> > Devel mailing list
> > Devel на lists.altlinux.org
> > https://lists.altlinux.org/mailman/listinfo/devel
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel

Best regards,
Andrew Savchenko
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 833 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20211214/dbaacc0c/attachment.bin>


Подробная информация о списке рассылки Devel