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

文章目录

  • 1、简述
  • 2、优化点
    • 2.1、内存处理
      • 2.1.1、Windows的资源管理器
        • 2.1.1.1、大图标模式
        • 2.1.1.2、超大图标模式
        • 2.1.1.3、其他模式
      • 2.1.2、用Qt做的类似资源管理器的软件
    • 2.2、滑动处理
      • 2.2.1、Windows的资源管理器
      • 2.2.2、用Qt做的类似资源管理器的软件
    • 2.3、超大数据处理
    • 2.4、缩略图生成优化处理
      • 2.4.1、视频文件
      • 2.4.2、音乐文件与图片文件

1、简述

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

我们做的改造主要对以下几点进行优化:

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

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

测试用的系统是Win10的操作系统来测试的,测试的操作系统信息如下

2.1.1.2、超大图标模式

4万图片,全部图片加载过程占用500M,加载完初始化大小100多M,图片加载一半左右差不多已经是5G多,普通电脑根本不够它玩的。这台测试机器总共才8G内存,之前为了测试这个把操作系统搞卡死机好几次,这次滑了一半左右就停了,已经占用5G内存了,再来其他软件就没活路了。

2.1.2、用Qt做的类似资源管理器的软件

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

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

2.3、超大数据处理

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

2.4、缩略图生成优化处理

2.4.1、视频文件

视频文件,Windows采用的是取视频的第10s的帧,不足10s的取最后的帧。这样的话,如果是电视连续剧的话,会导致该电视剧生成的所有缩略图都一样。如果想区分的话,可以用我的方法,取视频中间帧。推荐用ff,大视频文件和小视频文件取第几帧的时间大致一样。

2.4.2、音乐文件与图片文件

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

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月8日
下一篇 2020年10月8日

相关推荐