Страница 1 из 1

[WCP] Ускоритель отображения содержимого архивов

Добавлено: Вт дек 24, 2019 18:11
remittor
WCP - ускоритель отображения содержимого архивов

Ранее я уже предлагал автору TC усовершенствовать алгоритм отображения содержимого архивов.
Но очень похоже что автор просто забил болт на это (как и на тормозной плагин SFTP).

Впрочем самому стало интересно узнать, а как себя будет вести TC при грамотной реализации файлового хранилища.
Для этого решил написать плагин, который перехватывает 3 функций в TC и патчит динамически указатель на массив с данными.

Теперь попробуем протестировать WCP-плагин на скорость.

Стэнд для тестирования: Intel J1900 2.5GHz, DDR3 16GiB, SSD SAM860EVO 512GB, Win7 SP1 x64, TotalCmd 9.22a 32-bit
Файл для тестирования: TAR-файл 11GB с исходниками андройда и т.п., который содержит 453973 файлов и 52930 директории.

Первый тест: подмена файловой коллекции отключена (плагин работает в режиме мониторинга).
Второй тест: подмена файловой коллекции включена.

Код: Выделить всё

  Test 1    |   Test 2    |  items |  comment/directory
----------------------------------------------------------------  
46527.07 ms |  3351.26 ms | 506900 |  file collection building
 4615.79 ms |     0.12 ms |      1 |  [root dir]
 4952.83 ms |     1.00 ms |     51 |  [AP\kernel\firmware]
 4830.28 ms |     3.45 ms |    130 |  [AP\kernel\kernel]
 5653.89 ms |     5.08 ms |    188 |  [AP\external]
Подсчитаем величину полученного ускорения при отображении содержимого архива: 5653.89 / 5.08 = 1113

Получается, что WCP-плагин ускоряет работу с архивами как минимум в 1000 раз!!! 8)


Скачать: wcpatcher.zip

Поддерживаемые версии TotalCmd: 9.22a, 9.50b11, 9.50b12

Примечания:
1) Если в архиве меньше 3000 элементов, то плагин будет работать в холостую, т.е. без подмены указателя на файловое хранилище.
2) Для выключения подмены указателя на файловое хранилище достаточно в имя архива добавить подстроку "TURN+OFF+WCP".
3) Для включения подмены указателя на файловое хранилище достаточно в имя архива добавить подстроку "TURN+ON+WCP".
4) Логирование осуществляется в DbgView.

Установка плагина:
Установка плагина происходит по обычной схеме.
Далее, чтобы реализовать автозапуск при старте Total Commander, нужно создать цветовую схему следующим образом:
1. На странице настроек «Цвета» нажать кнопку «Определить цвета для типов файлов».
2. В диалоге «Определить цвета для типов файлов» поставить курсор в любое место списка и нажать кнопку «Добавить».
3. Нажать кнопку «Шаблон».
4. В диалоге «Выбор шаблона» перейти на вкладку «Плагины».
5. Выбрать в выпадающем списке плагинов wcpatcher.
6. В списке свойств выбрать любое значение (допустимо даже пустую строку).
7. Выбрать в выпадающем списке операций "=" и ввести в следующем поле любое целое число, например, "1".
8. Нажать кнопку «Записать», назвать как-либо шаблон, например, "WCP".
9. Далее последовательно нажимать кнопку OK во всех диалогах до выхода из всех настроек.
10. Перезапустить TC.

Добавлено: Вт дек 24, 2019 18:32
Flasher
remittor писал(а):Плагин пока заточен только под TotalCmd 9.22a 32-bit.
Т.е на новой линейке не заведётся (поля Autorun нет в списке)?

WCP могут путать с WACP. Стоит переименовать.

Добавлено: Вт дек 24, 2019 18:36
Avada
remittor
Оформительские крайности из сообщения убраны. Читайте правила форума. Установка плагина идёт по классической схеме Autorun и TWinKey, переписанной почти дословно. Достаточно было упомянуть только принципиальные нюансы, если они вообще есть. И перестаньте пользоваться тегом List, у вас с ним ничего не получается, кроме порчи вида сообщений.

Добавлено: Сб янв 04, 2020 10:50
remittor
Обновил плагин и опубликовал сорцы на github.
Теперь можно настраивать плагин через INI-файл.

Так же появилась такая идея:
А возможно ли сделать аналог MultiArc плагина, который бы работал через api WFX-плагинов?

Добавлено: Сб янв 04, 2020 11:05
Avada
remittor
Настоятельно рекомендую положить в дистрибутив ридми-файл со всеми необходимыми пояснениями по плагину.
И вам не кажется, что идею про "возможно ли" если и следует обсуждать, то всяко не здесь (где это несомненный оффтоп), а отдельной темой в подфоруме для разработчиков плагинов? Заодно там и пояснили бы, кому и для чего такой аналог вообще может потребоваться.

Добавлено: Пн янв 20, 2020 22:03
imig73
Потестировал пару недель и снёс. Да он что то наверное ускоряет, но что не открываются вложенные каталоги в некоторых не RAR-архивах это никуда не годится. К примеру в архиве 7z не открывается вложенная Win10_ISO_Update.7z\Win10_Update\mount\ и т. п. Ждём ТС 9.50, где надеюсь ускорение будет сделано более корректно.

Добавлено: Вт янв 21, 2020 06:03
Avada
imig73
Почему "ждём" и почему "будет"? Всё, что Гислер хотел и мог, он, насколько понимаю сделал в последних бетах. Включая исправление выявленных багов.

Добавлено: Вт янв 21, 2020 06:20
imig73
Avada
Таких проблем в 9.50 Beta 13 конечно же нет, только уловить не могу насколько это стало быстрее.

Добавлено: Вт янв 21, 2020 07:34
Avada
imig73
Я TC на этот предмет не тестировал, а плагином вообще не пользовался. Но на оффоруме имеется тема, где для тех, кому интересно, есть всяческая информация. В том числе и по внедрению фичи в TC.