下载地址:https://files.1fav.org/s/gJYhx
20250125更新记录
- 去掉TextBox控件,改用基于
Listview
绘制的VirtualListView
来进行展示数据,解决之前计算时候不停闪屏问题,包括历史记录表格也是 - 增加了调用历史记录的功能,计算已经计算过的文件时直接调用历史记录(可自行在设置中关闭).使用的是文件特征码来记录是否计算过.计算一个文件的特征码以我自己的7950X3D为例,只要2微秒不到,所以不影响性能,10000个文件也才20毫秒不到的级别.而且主要消耗的时间还是在
Fileinfo
的创建上.. - 给历史记录展示增加双缓存,测试打开100万条记录和打开1条记录没区别,主要还是因为
VirtualListView
我在绘制的时候也加了缓存,而且数据的展示是实时绘制,并不是一次加载100万条记录 优化了文件处理列队,怕万一有人无聊要计算几万个文件甚至几十万个文件..有待进一步优化- 去掉除了清理历史记录的所有弹窗提示,改用
Toast
来提示. - 改进了内存管理和资源释放,因为如果你们和我一样设置一个文件使用20,甚至30个线程去计算,你的物理内存使用会飙升.这个改动就是为了更好的回收线程和释放资源,另外因为
.NET TP Worker
线程无法直接管理,我设置了一个每次执行之后的定时任务来释放和回收内存. - 还有其他一些巴拉巴拉的就不哔哔了,什么优化了一下代码结构,也是方便自己,把一些常用的封装起来了,然后再就是更好的异常处理之类的...
- 起床之后又修改了一个地方,修改历史记录中之前的遍历法为枚举加字典的方法
因为这次考虑到了可能会计算大量的超大文件,所以用了.NET8.0,当然也是为了性能才会这么选.然后本来想自己写MD4算法,但是失败了,然后用了NuGet中的Portable.BouncyCastle
包来算,不过包是死的,人是活的嘛,我在其中加入了对单个文件进行多线程计算的功能,目前链接生成速度是吊打我能见到的所有ED2K链接生成工具