Git Product home page Git Product logo

hxz393 / brutalityextractor Goto Github PK

View Code? Open in Web Editor NEW
172.0 3.0 9.0 5.03 MB

适用于高性能系统的多进程解压缩软件(A multiprocess decompression software for high-performance system)

License: GNU General Public License v3.0

Python 100.00%
brute-force computational-efficiency data-processing decompression extractor high-performance optimization parallel-computing parallel-processing performance-optimization scalable brute-force-techniques performance-enhancement brute-force-decompression high-speed-decompression parallel-decompression parallel-optimization brute-force-attack efficient-compression-tool performance-testing

brutalityextractor's Introduction

软件介绍

BrutalityExtractor 是一款专为高性能系统打造的多进程解压软件。针对现代多核处理器和高速固态硬盘优化,批量解压速度比常见解压软件提升 5 倍以上,彻底利用计算机硬件性能。

主要特性:

  • 批量解压缩:自动扫描解压目录下所有压缩文件,即使文件后缀名不正确也能正确识别。
  • 支持多格式:支持常见压缩文件格式 7zziprartargzxzbz2 ,并且能正确处理分卷压缩包。
  • 支持多进程:根据处理器线程数,自定义解压进程数量,将解压速度翻倍。
  • 支持密码列表:可以设置常用密码列表,自动匹配加密压缩包。
  • 附加功能:消除目录冗余、删除空目录、删除垃圾文件等常用功能。

软件截图:

最新版本截图

命令行截图:

命令行截图

系统要求

使用前请仔细阅读下面软件的使用限制。

操作系统

软件开发编译环境为 Win10 x64 专业工作站版,版本号 22H2。只要是 Win10 x64 以上操作系统的用户可以直接打开使用。

更低版本的 Win 7Win XP 因为使用 Python 3.10 版本的原因,不支持运行。

其他操作系统理论上可以手动编译成可执行文件,编译流程参见下面自行打包小节。

处理器

当处理器配置低于 2 核 4 线程时,软件将运行在单进程模式,不会有任何速度加成。

处理器配置高于 2 核 4 线程时,出于稳定性考虑,软件能设置进程数最高不超过处理器线程数的一半。

当然你可以选择多开软件运行,来实际上无视这一限制。因此可能造成系统死机、崩溃、丢失数据等副作用,请自行评估影响。

内存

内存限制比较宽松,这是因为无法评估运行时实际所需内存。解压所需内存由文件压缩格式、压缩算法、是否固实压缩等因素决定。当内存被占满时,可能会发生解压失败、程序运行报错、系统异常报错等情况。

建议对单个或分卷大于 4GB 的压缩文件手动解压。因为这类文件解压可能会占用大量内存,并且本软件目前对大体积压缩包没有加速效果。

采用多线程加速解压大体积压缩包的方案,正在评估效果。如果效果好,将会加入到后续更新中。

硬盘

如果使用传统机械硬盘,则无论处理器或内存配置有多高,使用本软件或其他软件,都不能让解压速度超过硬盘读写速度。

现在使用 PCI-E 3.0 x4 以上接口的固态硬盘,还被其他解压软件限制在机械硬盘的速度,这是一种极大性能浪费。本软件没有发明新解压算法来提高速度,但通过多进程运行的方式,让性能瓶颈转移到处理器上。

一个通用硬盘规格和进程数对应关系表如下:

硬盘规格 进程数 说明
HDD SATA 3.0 18TB 2 高性能 HDD,读写速度超 200MB/s,勉强可开 2 个进程
SSD SATA 3.0 4TB 4 高性能 SATA 接口 SSD,读写速度最高 500MB/s,可开 4 个进程
SSD PCI-E 1TB 8~64 常见 m.2 接口 SSD,通常有 1GB/s 以上读写速度,性能差异极大。进程数根据实际情况调整

下载地址

软件下载方式:

  • 方式一:到 release 页面下载最新版的可执行文件,文件名为 BrutalityExtractor.exeBrutalityExtractorCli.exe ,下载完毕可直接打开使用。
  • 方式二:百度网盘分流下载。
  • 方式三:直连下载。

下载的压缩包,需要解压缩后运行可执行文件,否则配置将不会保存。

自行打包

手动编译需要事先安装好 Python 3.10 以上版本,和 pyinstaller 软件包。其他依赖报缺啥装啥,统一装最新版。

编译步骤如下:

  1. 在安装有 Git 的主机上克隆项目。命令如下:

    git clone https://github.com/hxz393/BrutalityExtractor.git

    或者在 项目主页 点击绿色<> Code 按钮选择 Download ZIP 选项,下载 源码压缩包。下载完毕后用压缩软件或命令工具解压缩。

  2. 使用命令切换到项目路径下面。

    例如在 Windows 系统下面,打开 CMD 命令提示符,输入:

    cd B:\git\BrutalityExtractor
    B:

    在 Linux 系统下面,通用使用 cd 命令切换到项目路径下面:

    cd /root/BrutalityExtractor

    如果使用 PyCharm 作为 IDE,可以直接在自带的终端栏目输入下面打包命令。

  3. 使用 pyinstaller 命令编译打包成可执行文件:

    pyinstaller -F -w -i BrutalityExtractor.ico --add-binary 'bin/7z.exe;bin' --add-binary 'bin/7z.dll;bin' --collect-all="tksvg" BrutalityExtractor.py

    打包命令行模式脚本:

    pyinstaller -F -w -i BrutalityExtractor.ico --add-binary 'bin/7z.exe;bin' --add-binary 'bin/7z.dll;bin' --console BrutalityExtractorCli.py

    如果过程没有报错,可执行文件会生成到 dist 目录下面。

开源许可

本软件采用 GPL-3.0 license 源授权许可协议,若违背开源社区的基本准则,将开源项目据为私有用于商业用途,属于侵权行为,本人将追究法律责任。

用到的第三方开源库:

软件使用

第一次运行时,由于缺少配置文件软件界面为英文。可以展开 Appearance Settings,在 Language 后面选择简体中文来切换语言。选择以后需要重启软件来生效。

基本配置

其中解压目录或目标目录为必填项。

  • 解压目录

    输入或选择压缩包存放的目录,例如B:\ArchiveB:/Archive/ 均可正常识别。

    目录内最好别放无关的文件,否则可能会有意外解压行为,例如将游戏资源打包文件 resources.pak 给解压,造成游戏无法运行。

  • 目标目录

    输入解压后文件存放目录,解压后的目录结构会和解压目录中的保持一致。例如 B:/Archive/ 下面的 xd1/test.zip 文件内容会被解压到 B:/New/ 下面 xd1/test/ 内。

    将目标目录设定到不同磁盘,可以稍微提升解压速度。

  • 解压密码

    输入单个密码或者密码列表文本文件位置。如果压缩包没有密码,随便输入什么密码都可以解压。如果有密码,会挨个尝试密码列表中的密码,直到密码正确或全部失败。

    软件本身没有对密码尝试做多进程处理。如果需要暴力破解压缩包密码,可将密码列表分为多份,运行多个软件实例来跑。将日志等级设为 Debug,可在日志中看到尝试结果。此功能请勿用于非法用途。

    为了能正确读取特殊密码,密码文本文件请使用 UTF-8 编码格式储存。

高级配置

高级配置中的设置需要根据实际情况来调整。

  • 进程数量

    设置同时运行解压的进程数。解压进程数不会超过要解压文件的总数量。

  • 忽略警告

    关闭解压运行前的系统资源检测。

  • 释放空间

    在压缩包解压完成后,删除压缩包。无论开启与否,如果解压失败都不会删除原始压缩包。

  • 强制模式

    跳过文件类型识别,尝试对目录下所有文件进行解压。

  • 日志相关

    控制写入本地日志文件的配置,修改设置后需要重启软件来生效。

外观配置

一些外观主题设置。

  • 关闭提示

    关闭鼠标悬停在文字上时显示的提示信息。

  • 迷你模式

    使用小图标模式,让布局更紧凑。需要重启生效。

  • 修改主题

    选择自己喜好的软件主题配色风格。

  • 修改语言

    修改软件显示语言。目前仅有中英两种,欢迎提交其他语种的靠谱翻译。语言字典位于 modules/configs/lang_dict.py

  • 窗口透明

    配置窗口透明度。

附加功能

附加功能独立于解压功能存在,提供一些常用文件操作功能。

  • 功能开关

    开启功能开关后,将在目标目录下执行下面所配置的功能,解压操作暂时关闭。

  • 消除冗余

    消除冗余目录结构。只有在目录下有且仅有一个同名目录情况下会工作,一次只消除一层冗余结构。例如:将 D:/test/test/ 下面的文件提取到 D:/test/,之后删除空的 D:/test/test 目录。

  • 清理目录

    删除指定目录下所有扫描到空目录。有时空目录有其特殊用途,请谨慎清理。

  • 删除垃圾

    指定的文件或目录名,直接删除目标目录下找到的匹配目标。和解压密码一样,支持导入名称列表来批量删除。

命令行模式

在命令行中运行时,需要下载命令行版本可执行文件 BrutalityExtractorCli.exe

命令行模式仅支持有限的功能,但速度更快。命令格式如下:

BrutalityExtractorCli.exe [-h] -d D [-p P] [-c C] [-v]

其中中括号 [] 内的参数为可选。可以使用 BrutalityExtractorCli.exe -h 命令来查看自带帮助。

参数说明如下:

  • -d:指定压缩文件存放目录,解压操作也在同一目录进行,并且解压成功后会删除源压缩文件。
  • -c:设置同时解压的进程数量。没有最高限制,请小心输入。
  • -p:指定解压密码或密码列表。如果密码带空格,需要用双引号 "" 将密码括起来。

下面是一个使用示例,指定解压目录为 B:\Archive,密码列表为 B:/pass.txt,运行进程数 16:

BrutalityExtractorCli.exe -c 16 -d B:\Archive -p B:/pass.txt

常见问题

软件运行遇见错误时,先查看下面总结的一些常见问题和解决方案。再查看所有 Issue 中是否有同样问题。如果都没有帮助,可以提交新 Issue ,并附上相关日志。

窗口最大化后不正常

全屏模式下折叠展开不会自动适应窗口高度。

原因:由于使用的框架原因,不支持全屏模式。

解决:欢迎提供解决方案。

增加批量压缩功能

不加入。常见压缩软件在压缩时资源利用率非常好,请尝试 7zPeaZip 等开源免费软件。

增加自动改名功能

不加入。请尝试专业的软件,例如:everythingPowerToys 等优秀免费软件。

更新日志

为避免更新日志过长,只保留最近更新日志。

版本 1.2.1(2023.07.21)

改进内容:

  1. 消除冗余目录功能,可作用于所有子目录;
  2. 改进解压结果判断逻辑。

修复内容:

  1. 调低程序运行优先级;
  2. 修改更新检测方法;
  3. 修复其他小问题。

版本 1.2.0(2023.06.28)

改进内容:

  1. 添加强制模式开关,解除文件类型限制;
  2. 更新 7z 核心程序到 23.1 版本。

修复内容:

  1. 修复窗口退出时,子进程在系统残留。

版本 1.1.0(2023.06.20)

改进内容:

  1. 优化代码结构,提升运行速度;
  2. 合并删除垃圾文件和文件夹为一个功能;
  3. 优化日志记录功能;
  4. 添加默认配置项目。

修复内容:

  1. 修复 pathlib 库造成的性能问题,替换为 os 库;
  2. 修复一个特定情形下误删文件的 BUG。

版本 1.0.2(2023.06.15)

改进内容:

  1. 修改日志写入格式为 UTF-8;
  2. 当解压文件总数小于进程数时,设置进程数为文件数。

修复内容:

  1. 修复删除文件计数错误;
  2. 修复文件大小显示的小数位被忽略;
  3. 修复部分遗漏文字。

版本 1.0.1(2023.06.12)

修复内容:

  1. 添加读取文本时,指定使用 UTF-8 编码。

版本 1.0.0(2023.06.11)

发布第一个版本。

brutalityextractor's People

Contributors

hxz393 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

brutalityextractor's Issues

win10检测到病毒?

看有人推荐,想适用下,下载后报这个:
Program:Win32/Wacapew.C!ml
已删除

多级目录的解压有问题

解包的一个音乐目录 多级 想按现有的目录结构解压,结果程序只在目标目录建了目录最后又一个一个删除 我不知道这是什么问题 单独解压一个目录又正常

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.