• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于緩存技術(shù)的多線程下載軟件的改進(jìn)研究

      2018-01-05 23:49:20諶頏
      軟件工程 2017年11期
      關(guān)鍵詞:多線程

      諶頏

      摘 要:本文通過(guò)對(duì)WEB瀏覽器訪問(wèn)網(wǎng)絡(luò)資源特性的研究,將瀏覽器緩存技術(shù)應(yīng)用到下載軟件系統(tǒng),提出一種新的基于圖片資源緩存的下載軟件設(shè)計(jì)方法,可實(shí)現(xiàn)多線程、斷點(diǎn)續(xù)傳、限速等功能,改進(jìn)了傳統(tǒng)軟件下載圖片時(shí)的不足。測(cè)試結(jié)果表明,該設(shè)計(jì)具備良好的穩(wěn)定性和可行性,圖片資源下載速度較傳統(tǒng)軟件有了較大提升。

      關(guān)鍵詞:多線程;斷點(diǎn)續(xù)傳;下載;圖片緩存

      中圖分類(lèi)號(hào):TP301 文獻(xiàn)標(biāo)識(shí)碼:A

      Abstract:Based on the characteristics of web browsers to access network resources,the study applies the browser cache technology into the download software and puts forward a new download software design method based on image resource cache,which can achieve the functions of multi-thread transferring,broken-point continuingly-transferring and download rate restriction,etc.,and improve the image download through the traditional software.The test results show that the design has good stability and feasibility,and the image download rate is greatly increased.

      Keywords:multi-thread;broken-point continuingly-transferring;download;image cache

      1 引言(Introduction)

      互聯(lián)網(wǎng)的飛速發(fā)展促進(jìn)了網(wǎng)絡(luò)資源爆炸式成長(zhǎng)。用戶通常使用瀏覽器獲取網(wǎng)絡(luò)資源信息,而通過(guò)下載軟件下載資源則成為用戶最普遍的應(yīng)用[1],主流的下載軟件國(guó)內(nèi)有迅雷、快車(chē),國(guó)外有Orbit、TuoTu和電驢等。

      研究瀏覽器訪問(wèn)網(wǎng)絡(luò)資源的特點(diǎn)發(fā)現(xiàn),為了提高網(wǎng)頁(yè)訪問(wèn)速度,通常它會(huì)采用累積式加速的方法,即將曾經(jīng)訪問(wèn)過(guò)的網(wǎng)頁(yè)內(nèi)容,如圖片、cookie等存放到本地的緩存區(qū)域,當(dāng)有訪問(wèn)請(qǐng)求時(shí),瀏覽器將首先搜索該目錄。如果內(nèi)容已存在,則直接從緩存中讀取內(nèi)容,以此達(dá)到提高訪問(wèn)速度的目的。本課題基于IE瀏覽器緩存機(jī)制,將該技術(shù)應(yīng)用到下載軟件系統(tǒng)的設(shè)計(jì)中,提出了一種基于圖片資源緩存的下載軟件設(shè)計(jì)方法,改進(jìn)了傳統(tǒng)軟件下載圖片資源的不足。

      2 主要技術(shù)原理分析(Main technical principle

      analysis)

      2.1 線程與線程同步

      本系統(tǒng)采用了線程技術(shù),與進(jìn)程相比,線程的主要特點(diǎn)有:輕型實(shí)體,獨(dú)立調(diào)度,可并發(fā)執(zhí)行,共享進(jìn)程資源[2]。由于線程很“輕”,故線程的切換非常迅速而且開(kāi)銷(xiāo)小,并發(fā)執(zhí)行和共享資源方面優(yōu)于進(jìn)程。

      線程同步的主要任務(wù)是對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進(jìn)程能有效地共享資源和相互合作[3],從而使程序的執(zhí)行具有可再現(xiàn)性。

      2.2 圖片緩存下載機(jī)制

      基于瀏覽器緩存機(jī)制,用戶下載網(wǎng)頁(yè)圖片資源時(shí),可以先查找緩存區(qū)域。如果目標(biāo)圖片已經(jīng)存在,則從緩存中下載;如果不存在,則從遠(yuǎn)程服務(wù)器下載。本文所述方法采用基于IE瀏覽器緩存機(jī)制實(shí)現(xiàn),具體步驟在第五部分詳細(xì)闡述。

      2.3 下載限速原理

      本文提到的限速是指下載客戶端的限速,而并非服務(wù)器端的限速。由于網(wǎng)絡(luò)資源下載會(huì)占用較大帶寬,必須對(duì)下載流量進(jìn)行限制。本設(shè)計(jì)采用線程休眠來(lái)減少流量請(qǐng)求,從而實(shí)現(xiàn)流量限制。

      3 多線程下載軟件系統(tǒng)設(shè)計(jì)(Multi-threaded

      download software system design)

      3.1 系統(tǒng)整體框架

      系統(tǒng)基于.NET平臺(tái)開(kāi)發(fā),采用面向?qū)ο蟮姆椒ㄅc雙層架構(gòu)并行的設(shè)計(jì)理念。雙層結(jié)構(gòu)包括表示層與邏輯層。邏輯層提供一切邏輯上的處理,如下載、切割文件等;表示層是用戶的功能界面。在分層架構(gòu)的思想指導(dǎo)下,邏輯層與表示層具有較小的關(guān)聯(lián)性,易于后期的維護(hù)和修改。

      3.2 系統(tǒng)核心類(lèi)交互關(guān)系及功能

      本系統(tǒng)采用面向?qū)ο蟮木幊趟枷?,所有核心的代碼都由類(lèi)構(gòu)成。系統(tǒng)下載類(lèi)主要有下載模型DownloadBase、基于FTP下載的類(lèi)FTPDownload、基于HTTP下載的類(lèi)HttpDownload、基于P2P下載的類(lèi)P2PDownload。其中DownloadBase為其他三個(gè)類(lèi)的父類(lèi),繼承關(guān)系如圖1所示。

      4 功能實(shí)現(xiàn)(Function implementation)

      4.1 基于HTTP與FTP多線程斷點(diǎn)續(xù)傳核心技術(shù)實(shí)現(xiàn)

      本文以FTP為例闡述斷點(diǎn)續(xù)傳實(shí)現(xiàn)過(guò)程。當(dāng)程序運(yùn)行時(shí),根據(jù)URL啟動(dòng)多條線程連接FTP服務(wù)器,出于避開(kāi)防火墻的考慮,連接方式采用消極模式。當(dāng)客戶端連接至FTP服務(wù)器時(shí),發(fā)送RETR命令以獲取FTP上的文件。此過(guò)程并不是將文件數(shù)據(jù)一次性傳輸給客戶端,而是一步步傳輸。一般一次傳輸數(shù)據(jù)的大小即為緩存下載的大小,并且每條線程負(fù)責(zé)不同的數(shù)據(jù)段,每個(gè)數(shù)據(jù)段的大小除最后一條線程外都相等。獲取到數(shù)據(jù)后,客戶端再將數(shù)據(jù)從內(nèi)存中多線程并發(fā)寫(xiě)入到硬盤(pán)。

      4.2 斷點(diǎn)續(xù)傳具體實(shí)現(xiàn)方法

      斷點(diǎn)續(xù)傳指的是在用戶暫停下載時(shí),系統(tǒng)應(yīng)保存已經(jīng)下載時(shí)的數(shù)據(jù),并記錄暫停下載時(shí)數(shù)據(jù)寫(xiě)到的位置[4];當(dāng)用戶重新啟動(dòng)下載時(shí),系統(tǒng)能自動(dòng)下載剩余尚未完成的數(shù)據(jù)。斷點(diǎn)續(xù)傳主要用于下載較大文件。

      4.3 下載限速算法

      由于多線程技術(shù)可能會(huì)占用大量的網(wǎng)絡(luò)帶寬,影響用戶其他的網(wǎng)絡(luò)活動(dòng)[5],因此要對(duì)下載流量進(jìn)行限制。本設(shè)計(jì)使用線程休眠技術(shù)實(shí)現(xiàn)流量限制[6],其流程圖如圖2所示。

      具體實(shí)現(xiàn)如下:

      假設(shè)使用N條線程下載遠(yuǎn)程文件F,每條線程所使用的下載緩存大小設(shè)為S字節(jié),并且獲取S字節(jié)所需實(shí)際時(shí)間為T(mén)毫秒,限速目標(biāo)值為V',則線程具體休眠時(shí)間的算法如下:

      步驟1:求出理想的線程休眠時(shí)間T'=S/V',比較T與T'的大小。若T>=T',則表示獲取S字節(jié)的緩存所需時(shí)間大于理想休眠時(shí)間。換言之,當(dāng)前下載速度慢于限速目標(biāo)值V',無(wú)須進(jìn)行限速操作;反之,如果T

      步驟2:由于T

      步驟3:由于是使用多線程下載,即N條線程并發(fā)下載,因此,每條線程下載休眠時(shí)間應(yīng)為T(mén)N=Tx/N毫秒。

      4.4 IE圖片緩存下載的實(shí)現(xiàn)

      本設(shè)計(jì)中的圖片緩存下載技術(shù)使用基于IE瀏覽器緩存機(jī)制來(lái)實(shí)現(xiàn),其流程圖如圖3所示。由于采用了圖片緩存下載技術(shù),下載速度有了極大的提高,最好的情況下將達(dá)到硬盤(pán)的讀寫(xiě)速度,如22M/S。

      4.5 網(wǎng)頁(yè)圖片識(shí)別篩選功能

      傳統(tǒng)下載軟件在下載網(wǎng)頁(yè)圖片時(shí),往往是將所有圖片下載,而實(shí)際上用戶只需要下載感興趣的圖片。基于此,本設(shè)計(jì)增加了網(wǎng)頁(yè)圖片識(shí)別篩選功能模型。該模型將圖片的長(zhǎng)寬大小范圍設(shè)定在300×300—1600×1600,以此作為用戶選擇下載的條件?;诖撕Y選模型下載到符合要求的圖片準(zhǔn)確率比較高,一般可高達(dá)88%,其分析詳見(jiàn)5.3節(jié)。

      5 運(yùn)行分析與測(cè)試(Application analysis and test)

      5.1 多線程斷點(diǎn)續(xù)傳下載的測(cè)試

      本節(jié)對(duì)多線程斷點(diǎn)續(xù)傳功能進(jìn)行測(cè)試,測(cè)試資源是在互聯(lián)網(wǎng)任意選取的6個(gè)遠(yuǎn)程資源文件,所得測(cè)試數(shù)據(jù)見(jiàn)表1。從表1中可知6個(gè)目標(biāo)資源均成功下載至本地,且文件完整,說(shuō)明本設(shè)計(jì)的多線程斷點(diǎn)續(xù)傳下載技術(shù)已經(jīng)實(shí)現(xiàn)成功。

      5.2 圖片緩存下載技術(shù)性能分析

      本文4.4節(jié)介紹了IE圖片緩存下載技術(shù)的實(shí)現(xiàn)方法,本節(jié)就對(duì)該技術(shù)的性能與迅雷軟件進(jìn)行對(duì)比分析。本實(shí)驗(yàn)的數(shù)據(jù)源是從互聯(lián)網(wǎng)上任意選取20個(gè)網(wǎng)頁(yè),實(shí)驗(yàn)中對(duì)比了兩種下載軟件的性能,結(jié)果見(jiàn)表2。在全部緩存到本地的情況下,緩存下載技術(shù)下載速度較傳統(tǒng)下載技術(shù)有了很大的改進(jìn)。

      依據(jù)表2,可得兩種方法下載時(shí)間比較的柱形圖,如圖4所示。

      從圖4中可明顯地看到,相同的圖片資源下載,運(yùn)用了緩存技術(shù)的下載軟件下載耗時(shí)很小。對(duì)比二者,下載差距如圖5所示。

      從中可以看到,當(dāng)下載網(wǎng)頁(yè)中26張圖片的時(shí)候,迅雷下載耗時(shí)是圖片緩存下載技術(shù)的3500多倍,即使在差距最小的情況下,迅雷下載耗時(shí)也是后者的200多倍。由實(shí)驗(yàn)分析可知,圖片緩存下載技術(shù)無(wú)論是在下載速度上,還是在占用本地資源上,較傳統(tǒng)下載軟件有較大優(yōu)勢(shì)。

      5.3 網(wǎng)頁(yè)圖片識(shí)別篩選準(zhǔn)確率分析

      本實(shí)驗(yàn)使用了表2的20個(gè)網(wǎng)頁(yè)進(jìn)行識(shí)別篩選測(cè)試,其結(jié)果如圖6所示。

      由圖可知,20個(gè)網(wǎng)頁(yè)中有15個(gè)識(shí)別率高達(dá)100%,有4個(gè)識(shí)別率超過(guò)50%,只有1個(gè)識(shí)別率為0。從所選用的20個(gè)網(wǎng)頁(yè)來(lái)看,本圖片篩選模型平均準(zhǔn)確率達(dá)到了88%。

      結(jié)合此識(shí)別模型與圖片緩存下載技術(shù),可形成一個(gè)完整的下載方案:一方面提高了識(shí)別用戶目標(biāo)圖片的準(zhǔn)確度,另一方面下載的速度有著質(zhì)的飛躍。

      6 結(jié)論(Conclusion)

      本設(shè)計(jì)運(yùn)用了下載限速、斷點(diǎn)續(xù)傳、多線程、緩存下載等技術(shù),取得了良好的實(shí)現(xiàn)效果,最大限度利用了帶寬,提高了下載效率。針對(duì)目前主流下載軟件存在的不足,提出基于瀏覽器緩存特性實(shí)現(xiàn)的圖片緩存下載方法,顯著改善了圖片資源下載速度。

      參考文獻(xiàn)(References)

      [1] 周學(xué)威,閆鑫,趙櫸云,等.基于SOCKET的多線程下載工具的開(kāi)發(fā)[J].電子測(cè)試, 2011(08):104-106.

      [2] 楊代慶,王志蘋(píng),王星,等.一種斷點(diǎn)續(xù)傳的多線程新聞組抓取方法及存儲(chǔ)結(jié)構(gòu)[J]. 現(xiàn)代圖書(shū)情報(bào)技術(shù),2011(02):29-33.

      [3] 眭俊華,劉慧娜,王建鑫,等.多核多線程技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用,2016(06):239-242.

      [4] 王莉敏,梁正和,段全鋒.基于HTML5大文件斷點(diǎn)續(xù)傳的實(shí)現(xiàn)方案[J].計(jì)算機(jī)與現(xiàn)代化,2016(03):91-95.

      [5] 王楓,羅家融.Linux下多線程Socket通訊的研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2004(16):106-109.

      作者簡(jiǎn)介:

      諶 頏(1980-),男,碩士,高級(jí)工程師.研究領(lǐng)域:網(wǎng)絡(luò)信息系統(tǒng),圖像識(shí)別,數(shù)據(jù)挖掘,云計(jì)算,個(gè)性化推薦技術(shù).

      猜你喜歡
      多線程
      Java多線程同步機(jī)制在網(wǎng)絡(luò)售票系統(tǒng)中的應(yīng)用
      科技資訊(2016年29期)2017-02-28 09:30:34
      Java并發(fā)工具包對(duì)并發(fā)編程的優(yōu)化
      基于多線程文件傳輸關(guān)鍵技術(shù)研究與實(shí)現(xiàn)
      網(wǎng)頁(yè)爬蟲(chóng)技術(shù)的關(guān)鍵技術(shù)研究探索
      一種基于多線程的高速磁盤(pán)鏡像算法
      iOS并發(fā)程序設(shè)計(jì)中幾種方法的特點(diǎn)及使用技巧研究
      HTM L5 Web WOrker技術(shù)及應(yīng)用研究
      電站鍋爐煤粉參數(shù)遠(yuǎn)程監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
      一種高并發(fā)認(rèn)證服務(wù)器的實(shí)現(xiàn)
      一種低開(kāi)銷(xiāo)的并行重復(fù)數(shù)據(jù)刪除算法
      丹寨县| 福海县| 万盛区| 克拉玛依市| 邓州市| 洛阳市| 遵义县| 盐亭县| 佛学| 福贡县| 三都| 朝阳区| 中超| 玛纳斯县| 西宁市| 洛川县| 拜城县| 张掖市| 呈贡县| 兴仁县| 鱼台县| 大宁县| 阿荣旗| 宽甸| 渭南市| 日照市| 平阳县| 饶阳县| 天水市| 博白县| 桐城市| 大城县| 博兴县| 元江| 利津县| 东乡| 申扎县| 靖安县| 平定县| 西华县| 米泉市|