[發明專利]一種對比打包文件的方法,裝置及其系統有效
| 申請號: | 201410339457.5 | 申請日: | 2014-07-16 |
| 公開(公告)號: | CN104199637B | 公開(公告)日: | 2017-02-08 |
| 發明(設計)人: | 劉暢 | 申請(專利權)人: | 珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司44205 | 代理人: | 陳國榮 |
| 地址: | 519000 廣東省珠*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 對比 打包 文件 方法 裝置 及其 系統 | ||
技術領域
本發明涉及一種對比打包文件的方法,特別是一種能對比打包文件的裝置以及系統。?
背景技術
在大型客戶端中所保存的資源文件通常是以壓縮包的形式存在?,F有的對比打包文件方法在對比兩個壓縮包中的文件內容是否完全一致時需要如下的三步處理過程:?
第一步,將第一個壓縮包內的所有文件內容解壓縮到硬盤上;
第二步,再將第二個壓縮包內的所有文件內容解壓縮到硬盤上;
第三步,對比兩份解壓縮后的相對應文件,確認所述兩份文件內容是否相同。
但所述這種現有的處理方式有如下四個重要的缺點:?
缺點1,由于所述現有處理過程的第一步和第二步中的解壓縮處理需要進行硬盤的讀寫操作,因此處理速度相對變得非常緩慢,特別是當壓縮包越大,所需要的讀寫時間就越長;
缺點2,由于所述現有處理過程第三步的對比過程均為單一線程,如在文件讀取過程中無法同時進行解壓縮處理,而在進行解壓縮處理過程中又無法同時進行對比文件的處理;
缺點3,在執行完所有處理過程并輸出對比結果后還需要將前兩步解壓到硬盤上的文件內容進行清理,從而減少對硬盤空間的占用,但同時該過程也需要一定的時間來進行硬盤的寫操作;
缺點4,現有的方法在進行文件讀取過程中,由于沒有考慮壓縮包內文件在壓縮包里面的地址順序,而根據硬盤的機械特性,硬盤磁頭在高地址與低地址之間反復跳動尋址,將影響文件讀取的效率。因此現有的不根據地址順序的讀取會降低硬盤的讀取效率。
因此所述的現有的對比打包文件方法的效率非常低,當打包文件越大,其所需的時間也越長。?
發明內容
為了解決現有技術中所存在的上述問題,本發明的目的是提供一種高效的對比打包文件的方法,及其對應該算法的對比打包文件的裝置。?
本發明解決其技術問題所采用的技術方案是:?
一種對比打包文件的方法,包括兩條獨立的流水線,每條流水線內包括5個獨立的線程,5個獨立的任務隊列和一個差異結果集合。整個方法的進程里面有10個獨立線程,10個任務隊列和兩個差異結果集。
進一步,每個線程獨立完成自己的工作,即每次從自己的任務隊列中取出一個任務來完成,之后放入下一個任務隊列中。由于線程是可以獨立使用CPU內核進行工作的,因此所有的線程不會阻塞,CPU達到最高的運轉效率。且線程和線程間不會產生較為復雜的影響。?
進一步,每條流水線中的獨立線程分別為:文件名比較線程,文件校驗值比較線程,文件讀取線程,文件解壓線程,文件內容比較線程。且此5個線程并行工作。?
進一步,其每條流水線中的獨立隊列為:文件名比較隊列,文件校驗值比較隊列,文件讀取隊列,文件解壓隊列,文件內容比較隊列。?
進一步,用于對比的包文件中,存儲了每一個包內的文件名所對應的包內文件地址和校驗值。?
進一步,校驗值可選用CRC。?
進一步,差異結果集合中存儲了內容上有差異的文件。即文件對比的輸出結果。?
進一步,兩條流水線在程序啟動時同時運行,其每條流水線對文件的操作過程是:?
1)查詢每一個包內文件名對應的包內地址;
2)根據文件在包內的地址由低到高排序;
3)將排序的文件名存入文件名對比隊列中;
4)運行:文件名比較線程,文件校驗值比較線程,文件讀取線程,文件解壓線程和文件內容比較線程;
5)從差異結果集合中取出所有文件名,并輸出。
進一步,“文件名比較線程”工作過程如下:?
1)???取出本流水線“文件名比較隊列”中的一個文件;
2)???在另一條流水線的“文件名比較隊列”中查找此文件名;
3)???若能找到,則將此文件放入本流水線的“文件校驗值對比隊列”,并將其從本流水線的“文件名比較隊列”中刪除。若不能找到則將其存入“差異結果集合”中;
4)???返回步驟1),以便取下一個文件。
進一步,“文件校驗值對比線程”工作過程如下:?
1)???取出本流水線“文件校驗值對比隊列”中的一個文件;
2)???在另一條流水線的“文件校驗值對比隊列”中查找此文件名;
3)???若能找到,跳轉到步驟4)。若沒有找到,則不做任何處理,跳轉到步驟5);
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司,未經珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410339457.5/2.html,轉載請聲明來源鉆瓜專利網。





