7zUltra_recompressor - батник для автоматической перепаковки ваших архивов (zip, rar, 7z) в 7z с маскимальным сжатием
Цитата: syfle от 18.02.2025, 21:36Павел, что ж, скопировал папку, раздал абсолютно односложные имена архивам и программа без проблем обработала их. Вот типичные имена моих архивов, может пригодится.
Павел, что ж, скопировал папку, раздал абсолютно односложные имена архивам и программа без проблем обработала их. Вот типичные имена моих архивов, может пригодится.
Цитата: Павел от 18.02.2025, 23:16Хорошо, я подумаю над решением проблемы...
Хорошо, я подумаю над решением проблемы...
Цитата: syfle от 25.02.2025, 20:53Привет, появилось предложение. Опциональное добавление в контекстное меню пункта для создания одного архива из папки\папок\файла\файлов с твоими параметрами сжатия. Может пригодится при появлении одного нового архива в папке и дабы не пережимать все или гонять архив в пустую папку для сжатия. А еще можно добавить в целом пункт для переархивирования всех архивов в папке.
Привет, появилось предложение. Опциональное добавление в контекстное меню пункта для создания одного архива из папки\папок\файла\файлов с твоими параметрами сжатия. Может пригодится при появлении одного нового архива в папке и дабы не пережимать все или гонять архив в пустую папку для сжатия. А еще можно добавить в целом пункт для переархивирования всех архивов в папке.
Цитата: Павел от 11.12.2025, 13:47Добрый день,
Долго что-то не занимался данным проектом. Постараюсь в скором времени продолжить наработки, пока еще есть желание и идеи (хотя знаний не всегда хватает).@syfle, та я особой нужды в этом не вижу - это тоже самое что контекстное меню самого 7zip. Только лишь что у меня самый последний пресет отличается от встроенных, но оно и не особо пока интересно. Я подумаю...
Обновил ссылку на версию beta11
https://disk.yandex.com/d/p95fMVeH8jbWFA
Добрый день,
Долго что-то не занимался данным проектом. Постараюсь в скором времени продолжить наработки, пока еще есть желание и идеи (хотя знаний не всегда хватает).
@syfle, та я особой нужды в этом не вижу - это тоже самое что контекстное меню самого 7zip. Только лишь что у меня самый последний пресет отличается от встроенных, но оно и не особо пока интересно. Я подумаю...
Обновил ссылку на версию beta11
https://disk.yandex.com/d/p95fMVeH8jbWFA
Цитата: Павел от 14.12.2025, 21:39
7z Ultra Recompressor
beta12
СкачатьДолгое время не занимался программой. Пересмотрел заново весь код, стало немного грустно от происходящего внутри и от того количества костылей, которыми я пытаюсь сделать работу возможной. Однако по-прежнему допиливаю и пытаюсь добавить новые функции, но становится всё сложнее бороться с batch (возможно пора переходить на C# ??)...
[spoiler title="Описание:"]
7z Ultra Recompressor - мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой и в то же время надежный инструмент.
Принцип работы:
- Устанавливаем 7-Zip (x64) или кидаем 7z.exe и 7z.dll в папку с программой (портабельный режим).
- Запускаем программу, выбираем уровень сжатия и рабочую директорию.
- Четыре уровня компрессии - имеют плавающую настройку величины словаря в зависимости от архивов. Количество потоков выбирается также исходя из условий.
- Программа обрабатывает каждый однотомный архив *.7z, *.rar, *.zip, а также многотомные *.7z.XXX, *.rar.XXX, *.rXX, *partX.rar, *partXX.rar, *partXXX.rar, *.zip.XXX, *.zXX.
- Архивы с паролями пропускаются.
- Процесс разбит на три этапа:
- проверка идентичных имен архивов в одной и той же папке, с выводом аларма - ситуация когда за вас никто не примет решения какой архив оставить;
- конвертация многотомных архивов в однотомные - метод Copy (он же Store);
- перепаковка однотомных архивов с выбранным уровнем сжатия.
- В конце подсчет количество операций, затраченное время и количество ошибок.
- По завершению, если нет критических ошибок, все временные папки с файлами удалятся. Получившиеся архивы .7z замещают старые архивы.
[/spoiler]
[spoiler title="Системные требования:"]
ОС: минимально Windows 8 (x64) рекомендуется Windows 10 19H1 (x64) и выше 7-Zip: минимально 16.04 (x64) рекомендуется 24.09 (x64) и выше ОЗУ: минимально 6 Гб рекомендуется от 8 Гб для Normal, от 16 Гб для Ultra и Super Ultra ЦП: Чем жирнее тем лучше
SSD: Рекомендуется для распаковки временных файловВ теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) - проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ.
[/spoiler]
[spoiler title="Добавил исправления и улучшения:"]
- Немного оптимизировал код на этапе инициализации
- Добавил проверку .NET Framework 4.x - забыл про это несколько версий назад т.к. внутри есть запросы к Windows Forms
- Повысил минимальную версию Windows до 8 - опять же выяснил что у меня есть запросы которые требуют минимум Powershell 3.0, а значит Windows 8+
- Исправил еще один сценарий когда проверка CRC32 не была успешной
- Изменил принцип расчета и проверки свободного места, теперь расчет размера ведется правильно для крупных файлов (десятки и сотни ГБ)
- Исправил проблему когда не показывался итоговый расчёт размера файлов при использовании спец символов в названии каталогов (wildcards)
[/spoiler]
[spoiler title="Проблемы и баги:"]
- При определенных условиях происходит зацикливание списка архивов, скорее всего проблема в наличии спец символов (так называемых wildcards) в названиях архивов и каталогов...
- При обработке многотомных архивов, нужно чтобы в одной папке был один многотомный архив - иначе происходит удаление всех многотомных архивов после обработки первого!
- В новых версиях WIndows 11 (по крайней мере 25H2 и выше) убрали компонент WMIC который задействован здесь. Есть альтернатива, чтобы перевести всё на Powershell, но он объективно медленнее работает в определённых задачах. Чтобы вернуть WMIC можно попробовать команду через Powershell:
Add-WindowsCapability -Online -Name WMIC[/spoiler]
По-прежнему использовать только для тестирования!
Для отслеживания происходящих процессов рекомендую использовать directory watcher, по типу Folder Changes View от NirSoft.
|
7z Ultra Recompressor beta12 |
Долгое время не занимался программой. Пересмотрел заново весь код, стало немного грустно от происходящего внутри и от того количества костылей, которыми я пытаюсь сделать работу возможной. Однако по-прежнему допиливаю и пытаюсь добавить новые функции, но становится всё сложнее бороться с batch (возможно пора переходить на C# ??)... |
||||||||||||||
|
Описание: 7z Ultra Recompressor - мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой и в то же время надежный инструмент.
Системные требования:
ЦП: Чем жирнее тем лучше В теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) - проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ. Добавил исправления и улучшения:
Проблемы и баги:
По-прежнему использовать только для тестирования! |
|||||||||||||||
|
|
Цитата: Павел от 24.12.2025, 14:12
7z Ultra Recompressor
beta13
СкачатьПроизошли некоторые подвижки в процессе. Решил всё же немного довести до ума и избавиться от старых проблем и ошибок перед тем как добавлять новые функции. Сделал много разных фиксов старого кода. Исправил проблему с ложными удалениями архивов, и потенциально исправил ситуацию с зацикливанием (однако необходимо еще тестирование).
[spoiler title="Описание:"]
7z Ultra Recompressor - мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой, быстрый и в то же время надежный инструмент.
Принцип работы:
- Устанавливаем 7-Zip (x64) или кидаем 7z.exe и 7z.dll в папку с программой (портабельный режим).
- Запускаем программу, выбираем уровень сжатия и рабочую директорию.
- Четыре уровня компрессии - имеют плавающую настройку величины словаря в зависимости от архивов. Количество потоков выбирается автоматически исходя из условий.
- Программа обрабатывает каждый однотомный архив *.7z, *.rar, *.zip, а также многотомные *.7z.XXX, *.rar.XXX, *.rXX, *partX.rar, *partXX.rar, *partXXX.rar, *.zip.XXX, *.zXX.
- Архивы с паролями, скрытые архивы и системные архивы пропускаются.
- Процесс разбит на три этапа:
- проверка идентичных имен архивов в одной и той же папке, с выводом аларма - ситуация когда за вас никто не примет решения какой архив оставить;
- конвертация многотомных архивов в однотомные - метод Copy (он же Store);
- перепаковка однотомных архивов с выбранным уровнем сжатия.
- В конце подсчет количество операций, затраченное время и количество ошибок.
- По завершению, если нет критических ошибок, все временные папки с файлами удаляются. Получившиеся новые архивы .7z замещают старые.
[/spoiler]
[spoiler title="Системные требования:"]
ОС: минимально Windows 8 (x64) рекомендуется Windows 10 19H1 (x64) и выше 7-Zip: минимально 16.04 (x64) рекомендуется 24.09 (x64) и выше ОЗУ: минимально 6 Гб для Normal,
16 Гб для Super Ultraрекомендуется от 8 Гб для Normal,
от 24 Гб для Super UltraЦП: Чем жирнее тем лучше
SSD: Рекомендуется для распаковки временных файловВ теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) - проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ.
[/spoiler]
[spoiler title="Добавил исправления и улучшения:"]
- Несколько мелких изменений и улучшений в логике вывода результатов
- Полностью переработал логику обработки и вывода списка дубликатов
- Сделал обработку архивов эксклюзивным списком (потенциально убирает зацикливание и повтор файлов)
- Полностью переработал логику переименования и удаления многотомных архивов (нет ложных удалений архивов)
- Исправил расчет размера файлов (многотомные и однотомные архивы)
[/spoiler]
[spoiler title="Проблемы и баги:"]
- В новых версиях WIndows 11 (24H2 и выше) убрали компонент WMIC который задействован здесь. Можно попытаться вернуть WMIC в Windows введя команду через Powershell:
Add-WindowsCapability -Online -Name WMIC[/spoiler]
По-прежнему использовать только для тестирования!
Для отслеживания происходящих процессов рекомендую использовать directory watcher, по типу Folder Changes View от NirSoft.
|
7z Ultra Recompressor beta13 |
Произошли некоторые подвижки в процессе. Решил всё же немного довести до ума и избавиться от старых проблем и ошибок перед тем как добавлять новые функции. Сделал много разных фиксов старого кода. Исправил проблему с ложными удалениями архивов, и потенциально исправил ситуацию с зацикливанием (однако необходимо еще тестирование). |
||||||||||||||
|
Описание: 7z Ultra Recompressor - мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой, быстрый и в то же время надежный инструмент.
Системные требования:
ЦП: Чем жирнее тем лучше В теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) - проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ. Добавил исправления и улучшения:
Проблемы и баги:
По-прежнему использовать только для тестирования! |
|||||||||||||||
|
|
Цитата: Павел от 11.01.2026, 18:52syfle, попробуй протестировать ранее зацикленные архивы - напиши есть ли изменения с версией beta13
syfle, попробуй протестировать ранее зацикленные архивы - напиши есть ли изменения с версией beta13
Цитата: Павел от 13.01.2026, 09:29syfle, отлично, это хорошие новости. Но я бы хотел чтобы ты, запустил beta11 (ссылка есть на нее выше) на этих же архивах и увидел то самое зацикливание, а потом beta13. Так это полностью подтвердит для меня что проблема ушла.
Я пока тоже продолжаю тестировать у себя подобные сценарии, и хочу поставить точку с этим, чтобы не возвращаться. Далее я уже готовлю еще несколько функций в след бету, а также перевод на русский (это в самом конце).
syfle, отлично, это хорошие новости. Но я бы хотел чтобы ты, запустил beta11 (ссылка есть на нее выше) на этих же архивах и увидел то самое зацикливание, а потом beta13. Так это полностью подтвердит для меня что проблема ушла.
Я пока тоже продолжаю тестировать у себя подобные сценарии, и хочу поставить точку с этим, чтобы не возвращаться. Далее я уже готовлю еще несколько функций в след бету, а также перевод на русский (это в самом конце).
Цитата: Павел от 16.01.2026, 11:46
7z Ultra Recompressor
beta14
СкачатьПотестировав еще немного - есть еще кончено, что исправлять и улучшать, но вроде идёт дело. Критические баги были исправлены, поэтому могу считать эту версию уже более-менее безопасной к применению.
Добавляю некоторые функции потихоньку...Добавил новое меню:
- Brute Force (Грубый перебор) - старый режим, пережимает все архивы подряд, всё еще актуален если вы жаждите максимально всё перепаковать.
- Smart Recompressor (Умный рекомпрессор) - автоопределение необходимости пересжатия. Экспериментальный режим, который не пережимает всё подряд, а сканирует архивы и выбирает только те, которые имеют более слабый или неизвестный метод сжатия. Экономит время и ресуры - полезно запускать в тех директориях где постоянно пополняете архивы. Настроен исходя из выбранного уровня сжатия - пропускает архивы с таким же или более высоким методом сжатия (могут быть осечки).
- Test Mode (Тест режим) - отдельное тестирование архивов на ошибки. Полезно запустить хотя бы раз, а затем сканировать состояние архивов при необходимости.
[spoiler title="Описание:"]
7z Ultra Recompressor - мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой, быстрый и в то же время надежный инструмент.
Принцип работы:
- Устанавливаем 7-Zip (x64) или кидаем 7z.exe и 7z.dll в папку с программой (портабельный режим).
- Запускаем программу, выбираем уровень сжатия и рабочую директорию.
- Четыре уровня компрессии - имеют плавающую настройку величины словаря в зависимости от архивов. Количество потоков выбирается автоматически исходя из условий.
- Программа обрабатывает каждый однотомный архив *.7z, *.rar, *.zip, а также многотомные *.7z.XXX, *.rar.XXX, *.rXX, *partX.rar, *partXX.rar, *partXXX.rar, *.zip.XXX, *.zXX.
- Архивы с паролями, скрытые архивы и системные архивы пропускаются.
- Процесс разбит на три этапа:
- проверка идентичных имен архивов в одной и той же папке, с выводом аларма - ситуация когда за вас никто не примет решения какой архив оставить;
- конвертация многотомных архивов в однотомные - метод Copy (он же Store);
- перепаковка однотомных архивов с выбранным уровнем сжатия.
- В конце подсчет количество операций, затраченное время и количество ошибок.
- По завершению, если нет критических ошибок, все временные папки с файлами удаляются. Получившиеся новые архивы .7z замещают старые.
[/spoiler]
[spoiler title="Системные требования:"]
ОС: минимально Windows 8.1 (x64) рекомендуется Windows 10 19H1 (x64) и выше 7-Zip: минимально 16.04 (x64) рекомендуется 24.09 (x64) и выше ОЗУ: минимально 6 Гб для Normal,
16 Гб для Super Ultraрекомендуется от 8 Гб для Normal,
от 24 Гб для Super UltraЦП: Чем жирнее тем лучше
SSD: Рекомендуется для распаковки временных файловВ теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) - проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ.
[/spoiler]
[spoiler title="Добавил исправления и улучшения:"]
- Исправил небольшие ошибки из последних версий
- Избавился от утилиты BRC32, исправил проблему: теперь все архивы имеют регистронезависимую обработку имён и расширений
- Немного ускорил некоторые части алгоритмов (десятки мс - неплохо, однако всё же есть еще куски, которые работают не супер быстро)
- Немного подправил алгоритм определения SSD - теперь определение проходит с очень высоким процентом вероятности (повышена минимальная версия Windows до 8.1)
- Убрал проверку на .NET Framework 4.x - для Windows 8.1 и выше неактуально (нужный инструментарий уже есть без дополнительной установки)
- Добавил новый функционал: Тест режим (Test Mode)
- Добавил новый функционал: Умный режим (Smart Recompressor) - пока что предварительная концепция (нужно будет доработать...)
[/spoiler]
[spoiler title="Проблемы и баги:"]
- В новых версиях WIndows 11 (24H2 и выше) убрали компонент WMIC который задействован здесь. Можно попытаться вернуть WMIC в Windows введя команду через Powershell:
Add-WindowsCapability -Online -Name WMIC[/spoiler]
Потенциально безопасно использовать, однако нужно больше отзывов.
Для отслеживания происходящих процессов рекомендую использовать directory watcher, по типу Folder Changes View от NirSoft.
|
7z Ultra Recompressor beta14 |
Потестировав еще немного - есть еще кончено, что исправлять и улучшать, но вроде идёт дело. Критические баги были исправлены, поэтому могу считать эту версию уже более-менее безопасной к применению. Добавил новое меню:
|
||||||||||||||
|
Описание: 7z Ultra Recompressor - мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой, быстрый и в то же время надежный инструмент.
Системные требования:
ЦП: Чем жирнее тем лучше В теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) - проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ. Добавил исправления и улучшения:
Проблемы и баги:
Потенциально безопасно использовать, однако нужно больше отзывов. |
|||||||||||||||
|
|
Цитата: Павел от 24.01.2026, 14:02Добрый день,
Для тех кому интересна программа - было бы неплохо узнать от вас как работает режим Smart Recompressor. Насколько точно он определяет архивы с высокой компрессией, возможно он пропускает архив который вы точно знаете что сжат слабо.
Спасибо.
Добрый день,
Для тех кому интересна программа - было бы неплохо узнать от вас как работает режим Smart Recompressor. Насколько точно он определяет архивы с высокой компрессией, возможно он пропускает архив который вы точно знаете что сжат слабо.
Спасибо.
Цитата: Павел от 17.03.2026, 13:36Добрый день,
Немного идёт работа. За это время наделал несколько beta версий, однако здесь их не выкладывал.
Вот что нового:Новые режимы сжатия
На сегодняшний день такие архиваторы как 7-Zip и WinRAR на настройке «Максимум» жмут не так, как хочет мое «хочу» – это уже давно не «Максимум» в наших реалиях. Поэтому перепробовав разные параметры сжатия 7-Zip, я сделал выводы, что нужно менять пресеты.
Собственно, 7z Ultra Recompressor – это про жирную компрессию без компромиссов и без устоев старых архиваторов. Поэтому скорость увеличивается, а требования повышаются!
Теория теорией, а будущее все-таки за многопоточностью! До этого я использовал пресет Super Ultra с настройкой Solid-режим, но он был всё-таки медленный! По факту многопоточность и большой объем памяти решает. Я полностью отказался от Solid-режима, т.к. это пережитки прошлого – в этом я окончательно убедился после сотни часов тестов!
А всё из-за того, что я упорно следовал теории и делал недостаточно практики. А почему так произошло? Ну не знаю, не знаю – меня никто не предупреждал!
Да, новые режимы тяжелые на слабых ПК, но на памяти 32+ Гб начинают взлетать в скорости, чего не было в предыдущей реализации. Поэтому новые режимы Super Ultra / Ultimate Ultra рекомендованы только для пользователей с 32+ памятью, иначе – боль.
В дальнейшем хочу убрать еще и Normal как довольно легкий режим, но пока оставлю. Что еще сдерживает – это пример из реального применения моего знакомого: Normal весьма актуален на гипер-больших архивах (несколько баз данных по 400 Гб), он справляется за несколько дней непрерывного пережатия 64 потоками.
Окончательно убрал свои таблицы с искусственными ограничениями по ОЗУ для 7-Zip. Я больше не перехватываю потоки за 7-Zip – пришёл к выводу что внутренние алгоритмы 7-Zip всё-равно сложно переучить, он сам принимает решения на лету.
Новые пресеты Ultra+/ Super Ultra / Ultimate Ultra – это база для тех, кому «ложить на всё» и он жмет архивы, потому что его ПК может!
Оптимизации и рефакторинг
7z Ultra Recompressor за счет своей легковесности и бескомпромиссности – возможно, это самое быстрое и мощное решение по пересжатию (на мой вкус).
Для большинства пользователей никаких критичных изменений нет – программа в целом как работала по своему алгоритму, так и работает.
Провел рефакторинг и оптимизацию кода – примерно 2/3 всей программы переписано. Все сторонние утилиты были выкинуты, написаны свои микромодули. Теперь больше половины программы – это C/C# и C/C++ (движок самой 7-Zip). Практически все Batch-костыли заменены на решения C/C#, все WMIC-зависимости устранены, половина PowerShell-кода устранена (еще есть немного функций). Из-за этого возможны вновь некоторые баги, но они не должны быть критичными.
Консоль (плюс базовый скрипт Batch) по-прежнему используется как интерфейс ввода/вывода. Визуально это то, что я хочу – туннельное взаимодействие с пользователем. Вам не нужно бегать по разным меню и чекбоксам в поисках настроек, все возможности представляются в виде последовательного выбора. В лучших традициях DOS-like программ. Весь код на C/C#/Batch написан мной вручную. Аудит и тестирование происходило через несколько ИИ-агентов.
Сделал трюк с двойной заменой настроек реестра для консоли. Понял, что на разных машина моя консоль может выглядеть абсолютно по-разному – поэтому применил данное решение. Это довольно безопасно, так как перед загрузкой моих параметров происходит бэкап пользовательских настроек. И даже если что-то пойдет не так, ветка HKCU\Console не является критичной и потеря этих параметров неопасно.
Баги на Windows 8
В погоне за оптимизацией в прошлых бетах я навтыкал функций PowerShell, которые, как оказалось, не поддерживаются в Windows 8.1. В общем, программа хоть и запускалась на Windows 8, но работала некорректно. Сейчас я это исправил и протестировал на разных виртуалках: Win 8.1, Win 10 (22H2), Win 11 (23H2).
Задачи на будущее
Немножко не хватает доп. информации в интерфейсе из-за ограниченных возможностей консоли. Может быть, добавлю когда-нибудь (перепишу свою консоль вывода? Но до этого пока далеко).
Планирую провести оптимизацию остальной 1/3 программы, добавить локализацию, возможно, еще какие функции. По-прежнему не завершён полный пошаговый ручной тест, а также нужно написать подробный FAQ.
Есть мысли еще по улучшениям, например, конвертацию на лету (режим pipe), но у самого разработчика это реализовано с жесткими ограничениями. Не знаю, возможно, это связано с агрессивной математикой LZMA. Также нет полноценной поддержки сжатия через CUDA/OpenCL, что дало бы огромный буст при хороших GPU. Есть проекты, которые реализуют это для других форматов, но 7z опять стоит особняком в стороне.
Добрый день,
Немного идёт работа. За это время наделал несколько beta версий, однако здесь их не выкладывал.
Вот что нового:
Новые режимы сжатия
На сегодняшний день такие архиваторы как 7-Zip и WinRAR на настройке «Максимум» жмут не так, как хочет мое «хочу» – это уже давно не «Максимум» в наших реалиях. Поэтому перепробовав разные параметры сжатия 7-Zip, я сделал выводы, что нужно менять пресеты.
Собственно, 7z Ultra Recompressor – это про жирную компрессию без компромиссов и без устоев старых архиваторов. Поэтому скорость увеличивается, а требования повышаются!
Теория теорией, а будущее все-таки за многопоточностью! До этого я использовал пресет Super Ultra с настройкой Solid-режим, но он был всё-таки медленный! По факту многопоточность и большой объем памяти решает. Я полностью отказался от Solid-режима, т.к. это пережитки прошлого – в этом я окончательно убедился после сотни часов тестов!
А всё из-за того, что я упорно следовал теории и делал недостаточно практики. А почему так произошло? Ну не знаю, не знаю – меня никто не предупреждал!
Да, новые режимы тяжелые на слабых ПК, но на памяти 32+ Гб начинают взлетать в скорости, чего не было в предыдущей реализации. Поэтому новые режимы Super Ultra / Ultimate Ultra рекомендованы только для пользователей с 32+ памятью, иначе – боль.
В дальнейшем хочу убрать еще и Normal как довольно легкий режим, но пока оставлю. Что еще сдерживает – это пример из реального применения моего знакомого: Normal весьма актуален на гипер-больших архивах (несколько баз данных по 400 Гб), он справляется за несколько дней непрерывного пережатия 64 потоками.
Окончательно убрал свои таблицы с искусственными ограничениями по ОЗУ для 7-Zip. Я больше не перехватываю потоки за 7-Zip – пришёл к выводу что внутренние алгоритмы 7-Zip всё-равно сложно переучить, он сам принимает решения на лету.
Новые пресеты Ultra+/ Super Ultra / Ultimate Ultra – это база для тех, кому «ложить на всё» и он жмет архивы, потому что его ПК может!
Оптимизации и рефакторинг
7z Ultra Recompressor за счет своей легковесности и бескомпромиссности – возможно, это самое быстрое и мощное решение по пересжатию (на мой вкус).
Для большинства пользователей никаких критичных изменений нет – программа в целом как работала по своему алгоритму, так и работает.
Провел рефакторинг и оптимизацию кода – примерно 2/3 всей программы переписано. Все сторонние утилиты были выкинуты, написаны свои микромодули. Теперь больше половины программы – это C/C# и C/C++ (движок самой 7-Zip). Практически все Batch-костыли заменены на решения C/C#, все WMIC-зависимости устранены, половина PowerShell-кода устранена (еще есть немного функций). Из-за этого возможны вновь некоторые баги, но они не должны быть критичными.
Консоль (плюс базовый скрипт Batch) по-прежнему используется как интерфейс ввода/вывода. Визуально это то, что я хочу – туннельное взаимодействие с пользователем. Вам не нужно бегать по разным меню и чекбоксам в поисках настроек, все возможности представляются в виде последовательного выбора. В лучших традициях DOS-like программ. Весь код на C/C#/Batch написан мной вручную. Аудит и тестирование происходило через несколько ИИ-агентов.
Сделал трюк с двойной заменой настроек реестра для консоли. Понял, что на разных машина моя консоль может выглядеть абсолютно по-разному – поэтому применил данное решение. Это довольно безопасно, так как перед загрузкой моих параметров происходит бэкап пользовательских настроек. И даже если что-то пойдет не так, ветка HKCU\Console не является критичной и потеря этих параметров неопасно.
Баги на Windows 8
В погоне за оптимизацией в прошлых бетах я навтыкал функций PowerShell, которые, как оказалось, не поддерживаются в Windows 8.1. В общем, программа хоть и запускалась на Windows 8, но работала некорректно. Сейчас я это исправил и протестировал на разных виртуалках: Win 8.1, Win 10 (22H2), Win 11 (23H2).
Задачи на будущее
Немножко не хватает доп. информации в интерфейсе из-за ограниченных возможностей консоли. Может быть, добавлю когда-нибудь (перепишу свою консоль вывода? Но до этого пока далеко).
Планирую провести оптимизацию остальной 1/3 программы, добавить локализацию, возможно, еще какие функции. По-прежнему не завершён полный пошаговый ручной тест, а также нужно написать подробный FAQ.
Есть мысли еще по улучшениям, например, конвертацию на лету (режим pipe), но у самого разработчика это реализовано с жесткими ограничениями. Не знаю, возможно, это связано с агрессивной математикой LZMA. Также нет полноценной поддержки сжатия через CUDA/OpenCL, что дало бы огромный буст при хороших GPU. Есть проекты, которые реализуют это для других форматов, но 7z опять стоит особняком в стороне.
Цитата: Павел от 17.03.2026, 14:31
7z Ultra Recompressor
beta18
СкачатьНовая промежуточная beta-версия [spoiler title="Описание:"]
7z Ultra Recompressor – мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой, быстрый и в то же время надежный инструмент.
Принцип работы:
- Устанавливаем 7-Zip (x64) или кидаем 7z.exe и 7z.dll в папку с программой (портабельный режим).
- Запускаем программу, выбираем уровень сжатия и рабочую директорию.
- 6 уровней компрессии – имеют плавающую настройку величины словаря в зависимости от архивов.
- Программа обрабатывает каждый однотомный архив *.7z, *.rar, *.zip, а также многотомные *.7z.XXX, *.rar.XXX, *.rXX, *.sXX, *partX.rar, *partXX.rar, *partXXX.rar, *.zip.XXX, *.zXX.
- Скрытые и системные архивы пропускаются.
- Проверка идентичных имен архивов в одной и той же папке, с выводом аларма – ситуация когда за вас никто не примет решения какой архив оставить.
- В конце подсчет количество операций, затраченное время и количество ошибок.
- По завершению, если нет критических ошибок, все временные папки с файлами удаляются. Получившиеся новые архивы .7z замещают старые.
[/spoiler]
[spoiler title="Системные требования:"]
ОС: минимально Windows 8 (x64) рекомендуется Windows 10 19H1 (x64) и выше 7-Zip: минимально 24.09 (x64) рекомендуется 25.01 (x64) и выше ОЗУ: минимально 6 Гб для Normal,
16 Гб для Super Ultra,
32 Гб для Ultimate Ultra
рекомендуется от 8 Гб для Normal,
от 24 Гб для Super Ultra,
от 48 Гб для Ultimate Ultra
ЦП: Чем жирнее тем лучше
SSD: Рекомендуется для распаковки временных файловВ теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) – проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ.
[/spoiler]
[spoiler title="Добавил исправления и улучшения:"]
- Исправил редкую ошибку чтения на многотомных архивах RAR
- Добавил обработку и удаление дополнительных многотомных RAR (*.sXX) - старая версия формата
- Обьеденил обработку single и multi - обьеденил три логики (дубликаты, мульти и синглы) в одну
- Убрал ограничение из-за которого невозможно было продолжить при ошибке многотомных архивов
- Убрал ограничение на подсчет размера архивов при ошибке (теперь выводится предупреждение если ошибки могли повлиять на конечный расчет)
- Добавил ввод пароля для архивов - можно выбрать пропускать или нет пароли с архивами
- Убрал перерасчет потоков из своей логики - теперь 7zip полностью сам анализирует потоки и ОЗУ - я больше не лезу в настройку производительности
- Добавил промежуточный пресет Ultra+ и изменил старый пресет Super Ultra (увеличил скорость и увеличил сжатие)
- Добавил еще один пресет Ultimate Ultra (4ГБ словарь)
- Повысил минимальную версию 7-Zip до 24.09
- Множественные мелкие измения в интерфейсе и под капотом
- Зафиксировал параметры окна конслои через двойную подмену настроек реестра
- Отказался от WMIC
- Отказался от других зависимостей
[/spoiler]
[spoiler title="Проблемы и баги:"]
[/spoiler]
Потенциально безопасно использовать, однако нужно больше отзывов.
Для отслеживания происходящих процессов рекомендую использовать directory watcher, по типу Folder Changes View от NirSoft.
|
7z Ultra Recompressor beta18 |
Новая промежуточная beta-версия | ||||||||||||||
|
Описание: 7z Ultra Recompressor – мини-утилита для автоматического пересжатия большого количества архивов .7z, .rar, .zip в новый .7z с высокой компрессией. В основе лежит идея создать максимально простой, быстрый и в то же время надежный инструмент.
Системные требования:
ЦП: Чем жирнее тем лучше В теории, с новыми версиями 7-Zip практически нет потолка по железу (для уровня Ultra) – проверена производительность вплоть до 48 потоков (AVX2) и 128 Гб ОЗУ. Добавил исправления и улучшения:
Проблемы и баги:
Потенциально безопасно использовать, однако нужно больше отзывов. |
|||||||||||||||
|
|

