Qt开发 之 Windows资源管理器模仿 并 小超越

一、简述

最近在作一个相似Windows的资源管理器的软件,先测一下资源管理器的文件加载处理过程,先学习一下再进行小小的超越。算法

咱们作的改造主要对如下几点进行优化:windows

  • 内存优化处理
  • 滑动优化处理
  • 大数据优化处理
  • 缩略图生成优化处理

测一下才发现资源管理器这里的内存处理作的有点垃圾,它的大目录加载的处理是真的垃圾。说它垃圾是由于若是机器配置不够会直接把操做系统卡死,内存占用会一直增长,这里我本身的软件作了优化。下面用数听说话吧……函数

测试用的系统是Win10的操做系统来测试的,测试的操做系统信息以下学习

在这里插入图片描述

二、优化点

2.一、内存处理

2.1.一、Windows的资源管理器

2.1.1.一、大图标模式

4万图片,所有图片加载过程占用500M,加载完初始化大小200M,图片所有加载完差很少占用1.5个G。
在这里插入图片描述
测试

2.1.1.二、超大图标模式

4万图片,所有图片加载过程占用500M,加载完初始化大小100多M,图片加载一半左右差很少已是5G多,普通电脑根本不够它玩的。这台测试机器总共才8G内存,以前为了测试这个把操做系统搞卡死机好几回,此次滑了一半左右就停了,已经占用5G内存了,再来其余软件就没活路了。
在这里插入图片描述
大数据

2.1.1.三、其余模式

其余模式还没测,有兴趣的能够本身一个个测试下
在这里插入图片描述
优化

2.1.二、用Qt作的相似资源管理器的软件

依旧是4万图片的目录,所有图片加载过程占用100M内存,加载完初始化大小160多M,动态加载在160-170M之间。spa

优化:滑动时,只有在显示区域内的图加载缩略图显示出来,已经加载的缩略图进行释放并用默认图标代替。这样即便快速滑动或者滑轮滚动,内存基本没有变化。
在这里插入图片描述
操作系统

2.二、滑动处理

2.2.一、Windows的资源管理器

实时加载并实时显示。这样说好也能够,由于能够动态显示出部分图片,说很差就是会卡滑动条,数据量一旦起来,Windows资源管理器作加载滑动时卡卡的。视频

2.2.二、用Qt作的相似资源管理器的软件

这里我作了优化,由于快速滑动的时候不必实时加载出缩略图。因此在滑动基本稳定后咱们再进行缩略图加载。

算法优化:在X毫秒内,连续执行 N次 Y函数时,只执行最后一次的函数调用。

(这里的gif动图犹豫生成的缘由比真实效果慢些,对付看)
在这里插入图片描述

2.三、超大数据处理

我这里指的超大数据是10w以上的数据。若是用Windows自己的资源管理器,超大图标模式,4W文件的状况所有加载完,8G内存都让他耗完了,就别提超大数据了,直接GG。咱们这里的应对措施暂时应用翻页的处理方式,若是不考虑单页可承受内存的影响,最合理的应该是1w数据一页,占用内存若是用咱们的处理方式,差很少稳定在100M如下

2.四、缩略图生成优化处理

2.4.一、视频文件

视频文件,Windows采用的是取视频的第10s的帧,不足10s的取最后的帧。这样的话,若是是电视连续剧的话,会致使该电视剧生成的全部缩略图都同样。若是想区分的话,能够用个人方法,取视频中间帧。推荐用ff,大视频文件和小视频文件取第几帧的时间大体同样。

2.4.二、音乐文件与图片文件

音乐和图片缩略图生成和Windows一致。音乐文件的缩略图藏在文件的头信息里面,只有部分mp3格式的文件里面包含此信息。这个和windows原理一致,先读取再生成

相关文章
相关标签/搜索