Qt开发 之 Windows资源管理器模仿 并 小超越
文章目錄
- 1、簡述
- 2、優(yōu)化點(diǎn)
- 2.1、內(nèi)存處理
- 2.1.1、Windows的資源管理器
- 2.1.1.1、大圖標(biāo)模式
- 2.1.1.2、超大圖標(biāo)模式
- 2.1.1.3、其他模式
- 2.1.2、用Qt做的類似資源管理器的軟件
- 2.2、滑動處理
- 2.2.1、Windows的資源管理器
- 2.2.2、用Qt做的類似資源管理器的軟件
- 2.3、超大數(shù)據(jù)處理
- 2.4、縮略圖生成優(yōu)化處理
- 2.4.1、視頻文件
- 2.4.2、音樂文件與圖片文件
1、簡述
最近在做一個類似Windows的資源管理器的軟件,先測一下資源管理器的文件加載處理過程,先學(xué)習(xí)一下再進(jìn)行小小的超越。
我們做的改造主要對以下幾點(diǎn)進(jìn)行優(yōu)化:
- 內(nèi)存優(yōu)化處理
- 滑動優(yōu)化處理
- 大數(shù)據(jù)優(yōu)化處理
- 縮略圖生成優(yōu)化處理
測一下才發(fā)現(xiàn)資源管理器這里的內(nèi)存處理做的有點(diǎn)垃圾,它的大目錄加載的處理是真的垃圾。說它垃圾是因為如果機(jī)器配置不夠會直接把操作系統(tǒng)卡死,內(nèi)存占用會一直增加,這里我自己的軟件做了優(yōu)化。下面用數(shù)據(jù)說話吧……
測試用的系統(tǒng)是Win10的操作系統(tǒng)來測試的,測試的操作系統(tǒng)信息如下
2、優(yōu)化點(diǎn)
2.1、內(nèi)存處理
2.1.1、Windows的資源管理器
2.1.1.1、大圖標(biāo)模式
4萬圖片,全部圖片加載過程占用500M,加載完初始化大小200M,圖片全部加載完差不多占用1.5個G。
2.1.1.2、超大圖標(biāo)模式
4萬圖片,全部圖片加載過程占用500M,加載完初始化大小100多M,圖片加載一半左右差不多已經(jīng)是5G多,普通電腦根本不夠它玩的。這臺測試機(jī)器總共才8G內(nèi)存,之前為了測試這個把操作系統(tǒng)搞卡死機(jī)好幾次,這次滑了一半左右就停了,已經(jīng)占用5G內(nèi)存了,再來其他軟件就沒活路了。
2.1.1.3、其他模式
其他模式還沒測,有興趣的可以自己一個個測試下
2.1.2、用Qt做的類似資源管理器的軟件
依舊是4萬圖片的目錄,全部圖片加載過程占用100M內(nèi)存,加載完初始化大小160多M,動態(tài)加載在160-170M之間。
優(yōu)化:滑動時,只有在顯示區(qū)域內(nèi)的圖加載縮略圖顯示出來,已經(jīng)加載的縮略圖進(jìn)行釋放并用默認(rèn)圖標(biāo)代替。這樣即使快速滑動或者滑輪滾動,內(nèi)存基本沒有變化。
2.2、滑動處理
2.2.1、Windows的資源管理器
實時加載并實時顯示。這樣說好也可以,因為可以動態(tài)顯示出部分圖片,說不好就是會卡滑動條,數(shù)據(jù)量一旦起來,Windows資源管理器做加載滑動時卡卡的。
2.2.2、用Qt做的類似資源管理器的軟件
這里我做了優(yōu)化,因為快速滑動的時候沒必要實時加載出縮略圖。所以在滑動基本穩(wěn)定后我們再進(jìn)行縮略圖加載。
算法優(yōu)化:在X毫秒內(nèi),連續(xù)執(zhí)行 N次 Y函數(shù)時,只執(zhí)行最后一次的函數(shù)調(diào)用。
(這里的gif動圖猶豫生成的原因比真實效果慢些,對付看)
2.3、超大數(shù)據(jù)處理
我這里指的超大數(shù)據(jù)是10w以上的數(shù)據(jù)。如果用Windows本身的資源管理器,超大圖標(biāo)模式,4W文件的情況全部加載完,8G內(nèi)存都讓他耗完了,就別提超大數(shù)據(jù)了,直接GG。我們這里的應(yīng)對措施暫時應(yīng)用翻頁的處理方式,如果不考慮單頁可承受內(nèi)存的影響,最合理的應(yīng)該是1w數(shù)據(jù)一頁,占用內(nèi)存如果用我們的處理方式,差不多穩(wěn)定在100M以下
2.4、縮略圖生成優(yōu)化處理
2.4.1、視頻文件
視頻文件,Windows采用的是取視頻的第10s的幀,不足10s的取最后的幀。這樣的話,如果是電視連續(xù)劇的話,會導(dǎo)致該電視劇生成的所有縮略圖都一樣。如果想?yún)^(qū)分的話,可以用我的方法,取視頻中間幀。推薦用ff,大視頻文件和小視頻文件取第幾幀的時間大致一樣。
2.4.2、音樂文件與圖片文件
音樂和圖片縮略圖生成和Windows一致。音樂文件的縮略圖藏在文件的頭信息里面,只有部分mp3格式的文件里面包含此信息。這個和windows原理一致,先讀取再生成
總結(jié)
以上是生活随笔為你收集整理的Qt开发 之 Windows资源管理器模仿 并 小超越的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【leetcode】Path Sum I
- 下一篇: 怎么一键重装系统?装机大师一键重装图文教