hrpzcf / hashcalculator Goto Github PK
View Code? Open in Web Editor NEW一个哈希值计算工具,批量计算/批量校验/查找重复文件/改变哈希值等,支持集成到系统右键菜单
License: GNU General Public License v3.0
一个哈希值计算工具,批量计算/批量校验/查找重复文件/改变哈希值等,支持集成到系统右键菜单
License: GNU General Public License v3.0
请问这个计算速度有多快啊,主要取决于什么因素呢?
我预计有将近四万个文件,每个文件300m以下,想要批量计算和校验完,但是不知道大概会花费多长时间
有没有大哥能够科普一下呢?或者说明一下计算的方法
作者可不可以增加一个批量改哈希值的功能,最好是不用计算直接改的那种
Dear @hrpzcf, does this app write some settings to the Windows registry after launching?
目前 5.9.0 版本集成的系统右键菜单有 2 个,都是二级菜单且子菜单项比较多,在使用上有些不方便。
原因: HashCalculator 根据计算任务的计数(启动任务增加计数,完成/取消任务减少计数)是否归零来标记 HashCalculator 的总状态(已启动/已停止)的,计算大量文件时单个任务完成过快的情况下会出现计数不断非零/归零的情况,导致 HashCalculator 的总状态不断切换,而部分按钮等控件又是根据总状态来切换可用/不可用状态,所以会出现此问题。
部分按钮等控件根据总状态来切换可用/不可用状态的初衷:某些按钮的行为与正在计算的过程有冲突,为了避免冲突而根据任务运行状态切换按钮的可用状态。比如“清空所有内容”按钮,如果有一个大文件正在计算中但没有把这个按钮设置为不可用,则此时点击清空按钮将导致正在计算的任务被从表格中清除而无法提前停止。
HashCalculator 考虑不再根据总状态切换部分按钮的可用状态,可能造成的按钮行为冲突使用更具体的逻辑来避免,比如点击清空所有内容按钮后,先停止所有任务,再清空表格。
计算哈希后,能否去重
原因是【相同哈希值】筛选器先根据分组数量生成相应数量的颜色数值并分配给文件用于在 UI 上显示背景颜色,再根据文件被分配的颜色数值来进行文件分组,当分组很多时也相应需要生成很多颜色数值,所以可能会出现颜色数值相同的情况
对于大量文件hash计算,速度是很影响体验的问题,目前开源hash算法xxHash速度明显领先于其他算法,也有对应c/c++库,希望能在后续版本增加对这一算法的支持。xxHash项目地址:https://github.com/Cyan4973/xxHash
计划删除或隐藏的算法:
直接选择校验依据进行校验时,如果校验依据里存在 HashCalculator.exe 等文件名且校验依据所在目录下不存在该文件,则使用“打开位置”有可能错误地打开程序目录下的 HashCalculator.exe 等文件。
使用体积很大的文件(且不是一个文本文档)作为校验依据文件进行校验时,会造成当前HashCalculator实例长时间无法完成校验依据文件的读取,从而阻塞HashCalculator用于处理右键菜单命令的通道,结果就是当前HashCalculator实例不再响应系统右键菜单命令,长时间占用大量CPU资源。
目前已知的是问题集中在 Windows10 LTSC 2019/2021 上,使用虚拟机未能复现问题。
有同样问题的同学请在此反馈,反馈时请带上HashCalculator 的版本号等,如果有更多有助于定位问题的信息就更好了。
比如旧的 Blake2S,在最新提交中细分为了 Blake2S-128、Blake2S-160 等等,如果在 右键菜单中选择 Blake2S,软件只会按默认算法进行计算
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.