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

news/2024/11/23 13:14:19/

文章目录

  • 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、优化点

2.1、内存处理

2.1.1、Windows的资源管理器

2.1.1.1、大图标模式

4万图片,全部图片加载过程占用500M,加载完初始化大小200M,图片全部加载完差不多占用1.5个G。
在这里插入图片描述

2.1.1.2、超大图标模式

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

2.1.1.3、其他模式

其他模式还没测,有兴趣的可以自己一个个测试下
在这里插入图片描述

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

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

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

2.2、滑动处理

2.2.1、Windows的资源管理器

实时加载并实时显示。这样说好也可以,因为可以动态显示出部分图片,说不好就是会卡滑动条,数据量一旦起来,Windows资源管理器做加载滑动时卡卡的。

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

这里我做了优化,因为快速滑动的时候没必要实时加载出缩略图。所以在滑动基本稳定后我们再进行缩略图加载。

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

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

2.3、超大数据处理

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

2.4、缩略图生成优化处理

2.4.1、视频文件

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

2.4.2、音乐文件与图片文件

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


http://www.ppmy.cn/news/450941.html

相关文章

计算机提示资源管理器停止,电脑开机黑屏并弹出Windows 资源管理器已停止工作该怎么办?...

电脑开机黑屏并弹出Windows 资源管理器已停止工作该怎么办?出现了一个问题,导致程序停止正常工作。如果有可用的解决方案,Windows将关闭程序并通知您。出现这样的问题,是因为操作系统异常,还需要用户自行回忆近期做了什么?注册表动过了?系统补丁刚刚打过?是否中毒、木马…

计算机提示资源管理器停止,详细教您提示win资源管理器已停止工作

小编最近发现有小伙伴想知道电脑出现“windows 资源管理器已停止工作”的解决办法,所以小编就去了解了一下子方面的知识,所以小编现在就来将解决“windows 资源管理器已停止工作”这问题的操作方法来分享给你们。 小伙伴你们知道怎么解决电脑老提示“win…

计算机中的windows任务管理器在哪,Win10系统中的explorer.exe在哪?怎么重启Windows资源管理器?...

重启Explorer.exe是我们修改注册表或者改动设置后需要做的;Win10桌面图标和任务栏不翼而飞,重启Explorer.exe就能解决问题。有用户发现打开win10的任务管理器后找不到Explorer.exe进程。这可如何是好呢,其实在Windows10中只不过将explorer.exe命名为了中…

计算机网络中计算机资源管理器,计算机基础知识:资源管理器的使用

资源管理器的作用是管理、组织、查看计算机中的文件或文件夹。 一、资源管理器的进入方法 (一)开始→计算机。 (二)双击上桌面“计算机”图标。 (三)右击开始按钮选择“打开Windows资源管理器”。 (四)单击任务栏上快速启动栏“Windows资源管理器”。 (五)快捷键:WI…

计算机资源管理器出问题怎么办,电脑资源管理器运行异常导致任务栏出现问题...

在电脑Win10系统中右击任务栏无应用,此类情况是由于“Windows资源管理器”运行异常所造成的,同时也与“最常访问”扩展菜单影响右键菜单弹出速度有关,针对此类情况,可以通过以下方法进行修复操作。 方法/步骤 方案一:重…

电脑文件服务器资源管理器在哪,资源管理器在哪?怎么打开资源管理器?5种方法总有适合你...

Windows系统功能多名称也多,有时候本来是一个简单的功能说在哪里用屁股想想都知道!但要说起这些功能的专业词汇就让人有些摸不着头脑了。就好比资源管理器,你知道资源管理器在哪吗?怎么打开资源管理器呢?这类简单问题有…

舞台LED显示屏与灯光完美结合的设计之美

近几年来,LED 显示技术飞速发展,LED显示设备技术水平和成熟度越来越高,其所涉及的领域和内容愈加广泛。在电视文艺节目的舞台上,以央视春晚为代表,ZUI炫目的应该是各种各样的LED显示屏。它们以精心制作的各种图片和动态…

SpringBoot整合activiti7实现简单的员工请假流程

Activiti 是一个开源架构的工作流引擎&#xff0c;基于bpmn2.0 标准进行流程定义。其前身是JBPM&#xff0c;Activiti 通过嵌入到业务系统开发中进行使用。 整合springboot 引入相关依赖 <!-- 引入Activiti7 --><dependency><groupId>org.activiti</gro…