LINUX.ORG.RU

Сообщения unrarhelp

 

Прошу помощи в решении проблемы с распаковкой RAR5 архивов для Linux

Форум — Development

Пожалуйста, сообщения, что rar не нужен, оставьте при себе. Этот форум называется Development.

Описание проблемы.

Как известно, сейчас все новые процессоры поддерживают динамическое изменение частоты в зависимости от нагрузки.

Архиватор rar5/unrar5 во время распаковки использует пул из 32 pthread потоков, но, как оказалось, существует проблема с их синхронизацией, и из-за этого распаковка архивов rar5 работает, например, на моём компьютере в шесть раз медленней, чем в Windows.

Во время распаковки в памяти висят 33 потока, которые создают нагрузку не выше 25%, поэтому cpugovernor даже не пытается повысить частоту ядер процессора, т.е. в случае turbo boost под Windows распаковка идёт на частоте ~3.9GHz, под Linux 1.6GHz.

Если вручную выставить cpugovernor в performance, то распаковка ускоряется, но это делает её всё равно медленней в 2,5 раза - т.е. проблема с синхронизацией не уходит, но становится менее выраженной.

Конечно, разбираться в чужом коде - неблагодарное занятие, но если вы хорошо разбираетесь в pthread и C++, то пользователи rar будут вам благодарны.

Для отладки архив rar5 можно создать следующим образом:

rar a -md256m -ma5 -htb -r arc_name.rar files directories

Работу unrar и саму проблему можно отследить командой:

time ./unrar t arc_name.rar

Исходники unrar можно скачать здесь.

 , ,

unrarhelp
()

RSS подписка на новые темы