關(guān)于六款WEB上傳組件性能測試與比較
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
隨著網(wǎng)絡(luò)大潮的持續(xù)深入,企業(yè)管理網(wǎng)絡(luò)化已成為一種趨勢,越來越多的企業(yè)用戶把自己的MIS、OA及各類管理系統(tǒng)搬到了WEB上,深刻地體現(xiàn)了軟件“人性化”的一個方面――你不需要安裝軟件,只要你有操作系統(tǒng),只要你有瀏覽器,就可以使用我的軟件! 但這些使用簡單方便的WEB頁面,卻有一點經(jīng)常讓人感到惱火,當(dāng)你想上傳一些資料或圖片到WEB上的時候,發(fā)覺稍大點的文件的上傳速度慢得讓人難以忍受,或者干脆就讓你用FTP上傳;更有一些企業(yè)用戶想在網(wǎng)上實現(xiàn)視頻播放,可文件太大,用WEB頁面上傳難以實現(xiàn),用FTP上傳又要求網(wǎng)站維護人員必須具有一定的FTP上傳知識,真是左右為難! 那么,是否有這樣一種WEB上傳組件,既要能夠?qū)崿F(xiàn)快速上傳(還要能上傳特大文件),又能夠盡量減少服務(wù)器資源占用率呢? 目前,網(wǎng)絡(luò)上使用的上傳方式大致分為兩類,一類是使用經(jīng)過編譯的組件(DLL文件)進行上傳,要使用該上傳方式必須在服務(wù)器上安裝上傳組件或在服務(wù)器上進行注冊組件方可使用;一類是使用未編譯的代碼類進行上傳,無需在服務(wù)器上注冊即可使用。這兩類組件各有十幾種,如AspSmartUpload,AspUpload,SA FileUp,LyfUpload,化境無組件上傳類……等等。在眾多的上傳組件中,筆者抽取了個人認(rèn)為具有代表性的六種上傳組件來進行測試,以求得它們之間的性能對比。 一、 為什么選它? 1、Asp.net自帶上傳組件:微軟公司最新開發(fā)出來的.net自帶的上傳組件,.net策略是微軟公司在新世紀(jì)的一個豪賭,這個上傳組件想必出手不凡,值得一看。 2、AspUpload3.0:一個享有盛譽的老牌上傳組件,該版本是最新版本,據(jù)說非常不錯,只不過…咳咳…它不是免費的,要xxx美元呢,提供30天試用期(便宜沒好貨?)。 3、SA FileUp4.0:這也是要錢的主,該版本為最新版,有2個月的試用期,是所有上傳組件中最胖的(接近10M),就沖著它的體積,是不是該選它呢? 4、LyfUpload1.2B:該組件是國內(nèi)擁有使用用戶最多的上傳組件,因為它免費,因為它穩(wěn)定,因為它有豐富的中文幫助,最主要的是它是中國造的! 5、化境無組件上傳類:該組件類在個人用戶中使用最廣泛(免費),因為個人用戶一般是用的免費空間或收費空間,服務(wù)器提供商大多不提供上傳組件支持,只能寫在程序里面了。 6、 梁無懼無組件上傳類:之所以介紹這個組件類,是因為作者自夸比化境無組件上傳類速度快50倍,口氣如此之大,看來不介紹它是不行的了(據(jù)作者說該類也是從化境無組件類中修改而成的,青出于藍(lán)而勝于藍(lán)) 二、 上傳組件技術(shù)參數(shù)表
三、 測試目的 通過相對嚴(yán)格的測試方法,測試各組件之間的上傳性能,以選擇最適合自己要求的組件 四、 測試環(huán)境 1、網(wǎng)絡(luò)環(huán)境:單位內(nèi)部局域網(wǎng),光纖主干,交換機百兆到桌面。 2、服務(wù)器硬件配置:P41.7G主機(個人機),512MDDR內(nèi)存,7200轉(zhuǎn)IDE普通硬盤 3、服務(wù)器軟件配置:WIN2000 SERVER SP2,IIS5.0,IE6.0,.NET環(huán)境 4、客戶機硬件配置:AMD毒龍750,256MSD內(nèi)存,5400轉(zhuǎn)IDE普通硬盤 5、客戶機軟件配置:WIN2000 SERVER SP2,IIS5.0,IE5.0 五、 測試方法 1、測試時間:2003-1-12(星期天,網(wǎng)絡(luò)使用低峰期。) 2、測試方式:共分8個測試階段,從1到8階段各提供一個專用的上傳測試文件,每個上傳組件分別循環(huán)測試三次,取三次成績的平均值為該階段測試標(biāo)準(zhǔn)成績。 測試文件列表:
六、 測試結(jié)果 1、第一組測試結(jié)果
(說明:傳輸比假設(shè)最高傳輸速度者為100%,統(tǒng)計其它傳輸率與它的對比,下同。) 上傳速度對比圖 CPU使用記錄圖 (從左至右為:asp.net,aspupload3,safileup4.01,lyfupload, 梁無懼無組件上傳類, 化境無組件上傳類) 點評: 在這一組測試數(shù)據(jù)中,.net自帶組件成績大幅度領(lǐng)先其余的上傳組件,化境無組件上傳類成績最差,二者的成績幾乎差別達(dá)到100百倍;aspupload3與梁無懼無組件上傳類以超過2M/s的成績居于第二。 從CPU使用記錄中抓圖得到的圖形來看,前五個上傳組件在上傳時幾乎對CPU使用毫無影響,但化境無組件上傳類產(chǎn)生了一個瞬間的高峰,CPU占用率達(dá)到100%。一般來說,在企業(yè)內(nèi)部可能大量上傳文檔,前五個上傳組件極低的CPU占用率非常令人滿意,但最后一個上傳組件竟然出現(xiàn)100%的CPU占用率,令人遺憾。 2、第二組測試結(jié)果
上傳速度對比圖 CPU使用記錄圖 (從左至右為:asp.net,aspupload3,safileup4.01,lyfupload, 梁無懼無組件上傳類, 化境無組件上傳類) 點評: 在這一組測試數(shù)據(jù)中,第一名與最后一名依然與第一組相同,但差距拉小到30倍左右。從測試數(shù)據(jù)來看,各組傳輸率均有大幅度下降,且各組間的傳輸速度高低差也逐步拉??;奇怪的是第六個組件的傳輸速度下降最不明顯,不到10%。 從CPU使用記錄圖來看,各組均出現(xiàn)CPU占用高峰,除.net組件外(不到100%),其余五個組件均出現(xiàn)100%的占用率,第六個組件(化境無組件上傳類)占用100%時間最長。 本次測試的上傳文件大小約為0.5M,屬于常見的文件大小,從上面的測試結(jié)果來看,除第六個組件外,表現(xiàn)均較為良好,可以接受。 3、第三組測試結(jié)果
上傳速度對比圖 CPU使用記錄圖 (從左至右為:asp.net,aspupload3,safileup4.01,lyfupload, 梁無懼無組件上傳類, 化境無組件上傳類) 點評: 這一組數(shù)據(jù)情況發(fā)生了有趣的變化,第一名與最后一名的位子仍然不動,但原來默默無聞的FileupV4.01組件的成績卻有了明顯的提高,從第一組測試成績到現(xiàn)在,該組件與其他組件的差距在不斷的縮小,本次測試更是在其他組傳輸速度出現(xiàn)普遍出現(xiàn)下降的情況下,它反而提升了傳輸速度,這說明該組件的優(yōu)勢之處并不在上傳小文件,文件越大,該組件的性能越能夠體現(xiàn)。 從CPU使用記錄圖上看,各組軟件之間的CPU占用圖形均達(dá)到了100%的占用,但也出現(xiàn)了細(xì)微的變化,其中,.net自帶組件的圖形最好,呈現(xiàn)一種瞬間達(dá)到的狀態(tài),頭部為尖形;aspupload3組件在CPU占用率達(dá)到100%前曾有短暫的CPU占用小高峰,之后才達(dá)到100%占用,F(xiàn)ileupV4.01組件情形類似,只是CPU100%占用的時間比較長些;Lyfupload1.2B組件與梁無懼無組件上傳類在上傳前并未先形成較小的CPU占用率,而是一開始就達(dá)到,直到結(jié)束上傳文件,才降低了占用率;化境無組件上傳類的情況是所有上傳組件中最不理想的,長時間的100%CPU占用率,而僅僅是在上傳一個2.3M的文件而已,竟然出現(xiàn)了整整超過70秒鐘的100%CPU占用率 4、第四組測試結(jié)果
上傳速度對比圖 CPU使用記錄圖(化境無組件上傳類圖形未錄入) (從左至右為:asp.net,aspupload3,safileup4.01,lyfupload, 梁無懼無組件上傳類) 點評: 本組測試數(shù)據(jù)發(fā)生了根本性的變化。測試上傳數(shù)據(jù)為7M,一般應(yīng)用中很少有如此大的上傳量,在上傳量大幅度增加的時候,各組件上傳性能的優(yōu)劣完全一目了然。.net自帶組件在本組測試數(shù)據(jù)中脫穎而出,遠(yuǎn)遠(yuǎn)超出其他上傳組件(超過一倍以上),上傳速度之快、占用CPU時間之短令人側(cè)目,唯一遺憾的是CPU占用率還不能拿到第一;ASPUPLOAD3組件也表現(xiàn)出了優(yōu)秀的性能,它的CPU占用率是六個組件當(dāng)中最小的,僅僅在40%左右;FileupV4.01組件的性能居于ASPUPLOAD之后列第三,從CPU占用圖形上看,兩者CPU占用圖走勢非常相似,差別僅是所用時間長一點,CPU占用率稍高一點;Lyfupload1.2B組件與梁無懼無組件上傳類成績雷同,CPU占用圖走勢幾乎一樣,CPU占用時間達(dá)到22秒,而且從開始到結(jié)束均為100%占用,不能令人滿意;居最后的化境無組件上傳類的情況最不理想,由于長達(dá)200余秒的100%CPU占用率,令其CPU占用圖都無法容納得下它,小廟難以容下大菩薩啊,它的圖形只好不列入觀看了。 從CPU占用圖上看,六個上傳組件明顯分成了兩種截然不同的傳輸數(shù)據(jù)風(fēng)格,前三種上傳組件在上傳較大數(shù)據(jù)時,其傳輸率竟然比上傳2M文件時大幅提高,而且CPU占用率大大下降,最低竟然達(dá)到40%;后三種上傳組件上傳較大數(shù)據(jù)時,傳輸率進一步下降,CPU占用率進一步提高,所耗上傳時間相應(yīng)增加。從兩種傳輸風(fēng)格來看,前一種的三個組件均為國外組件,后一種的三個組件均為國內(nèi)組件,這能說明什么問題呢? 5、第五組測試結(jié)果
上傳速度對比圖 CPU使用記錄圖(后三種組件CPU圖形未錄入) (從左至右為:asp.net,aspupload3,safileup4.01) 點評: 本組測試由于化境無組件上傳類測試成績較差,早早退出了比賽行列。 本組測試文件達(dá)到14M,各組件的上傳速度又出現(xiàn)大幅度下降,雖然如此,.net自帶組件成績?nèi)匀皇沁b遙領(lǐng)先,緊隨其后的是aspupload3組件與FileupV4.01組件,Lyfupload1.2B組件與梁無懼無組件上傳類雖然還能跟上前者的步伐不至于被淘汰,但上傳時間均已超過100秒,而且其巨大的CPU占用率就像一塊千斤大石般壓得人喘不過氣來(超過100秒鐘的100%CPU占用率)。 從CPU占用圖上來看(僅列三種圖形,后兩種上傳組件因為圖形單調(diào)毫無變化,沒有參考價值),.net自帶組件占用CPU時間最短,aspupload3組件CPU占用率最低,占用時間最長的是FileupV4.01組件。三者在達(dá)到100%CPU占用率之前,均出現(xiàn)明顯的CPU占用率小高峰,之后才出現(xiàn)100%的占用率。 6、第六組測試結(jié)果
上傳速度對比圖 CPU使用記錄圖 (從左至右為:asp.net,aspupload3,safileup4.01) 點評: 由于Lyfupload1.2B組件與梁無懼無組件上傳類的上傳時間達(dá)到驚人的450秒,而且在上傳期間完全處于100%的CPU占用率,已沒有再進行測試的必要性了,因此只測試一組數(shù)據(jù)作為參考。 本組測試又出現(xiàn)了奇怪的現(xiàn)象,前三個上傳組件的上傳速度在文件大小擴大一倍的基礎(chǔ)上反而增加了,增幅最大的FileupV4.01更達(dá)到驚人的70%提升;后兩個組件上傳速度隨著文件的增大等比例的下降。從速度上看,仍然是asp.net組件的速度領(lǐng)先,其次的aspupload3組件僅僅是它的50%,更不用說最低速度的后兩個組件了,只及asp.net組件的4%。 從CPU使用記錄圖看,前三個組件的圖形走勢非常相像,都是先形成一段較低CPU占用率的波形,最后猛然攀升,達(dá)到100%CPU占用率,其中Aspupload3組件的CPU占用率是最低的,asp.net組件占用率最高,F(xiàn)ileupV4.01居中但在三者中所用時間最長 7、第七組測試結(jié)果
說明:asp.net組件三次上傳記錄數(shù)據(jù)分別為:4.671875,3.328125,3.328125,但從CPU運行圖上看大約在35秒之間,結(jié)果以此為準(zhǔn),后三種上傳組件因速度太慢,已不具可比性,不參與測試 CPU使用記錄圖 (asp.net組件) (aspupload3) (safileup4.01) 說明: 本次所上傳的文件高達(dá)110M,如此大的文件上傳實際需求較少,但如果是視頻播放的話就需要上傳此類或更大的文件,上傳時間較長,更要求不能對服務(wù)器的正常運行造成影響。 更為令人奇怪的是,三個組件的上傳速度居然又大幅增長,尤其以asp.net組件的增長幅度令人恐怖,幾乎達(dá)到100%。這一點從CPU占用圖上也可以看出,asp.net組件以較高的CPU占用率在最短的時間內(nèi)就完成了110M文件的上傳,而最大的變化在于這三個組件的CPU占用率發(fā)生了本質(zhì)的變化,在上面的所有測試中,除了小文件上傳外,毫無例外的都出現(xiàn)過100%CPU占用率的現(xiàn)象,但此次居然并未出現(xiàn)!其中,aspupload3組件更是長時間運行在30~40%的CPU占用率內(nèi),可以說在上傳大文件時,幾乎就可以不考慮對服務(wù)器的影響而且速度更快。 8、第八組測試結(jié)果
說明:本次測試數(shù)據(jù)超過200M,asp.net組件上傳過程中無故中斷,無法上傳(重試多次) 上傳速度對比圖 CPU使用記錄圖
說明: 為了最終看看上傳組件上傳超大型文件的表現(xiàn),特地上傳了一個達(dá)到近230M大小的文件,一般而言,極少有這樣的上傳需求,所以此次測試僅供參考,只有一個測試數(shù)據(jù)。 在上傳過程中,意外的發(fā)現(xiàn)asp.net組件竟然無法上傳這個文件,連續(xù)多次測試并修改配置文件,最終仍是無法上傳(后查明asp.net允許最大的上傳文件為200M)。故asp.net的上傳測試只有無奈放棄。 從數(shù)據(jù)上看,aspupload3組件的傳輸速度仍有小幅提高(提高約40K左右),safileup4.01組件有小幅下降。從CPU使用記錄圖看,CPU占用率進一步下降,aspupload3組件CPU占用率僅在30%以下,safileup4.01組件稍高。 附件:六種上傳組件傳輸速度走勢圖 七、寫在后面: 花了好大功夫,終于把這個測試做完了。 做完了之后,心頭反而有點沉重。 從測試的數(shù)據(jù)來看,國內(nèi)的上傳組件與國外的上傳組件相比,技術(shù)明顯不在一個檔次上。國內(nèi)的上傳組件大多為免費使用,均為最簡單的讀取二進制數(shù)據(jù)方式進行上傳,技術(shù)上沒有突破,上傳小文件時還可以,上傳較大文件時,上傳速度急劇下降,并且普遍CPU占用率極高,一般均為全過程的100%CPU占用率;而國外的上傳組件已形成產(chǎn)業(yè),除asp.net組件搭配在.net環(huán)境中免費使用外,其余二者均為有償使用(aspupload3組件使用費高達(dá)500美元),在技術(shù)上,采用了某種我們未知的數(shù)據(jù)讀取方式,使上傳速度大大提高,尤其在上傳超大文件時更是大大降低了服務(wù)器CPU的占用率,使CPU占用率降低到30%的驚人水平,并且上傳速度高達(dá)1M/s以上(與閃盤速度差不多了),這些都是國內(nèi)上傳組件無法比擬的。 另外,這個測試是在局域網(wǎng)的環(huán)境下進行的,取得的數(shù)據(jù)傳輸率較高,但由于測試要點并不是進行定量的測試,而僅僅是比較各個上傳組件之間的性能,傳輸率高低并不重要,重要的是它們之間的性能對比以及對服務(wù)器CPU的占用程度。如果哪位朋友有不同意見的話,歡迎一起探討。 八、什么樣的上傳組件適合我?
如果還有其他沒有列入的情況,那怎么辦?……(這個,這個,你自己想辦法。) 附件:上述六種上傳組件的下載地址:
該文章在 2013/1/31 12:15:35 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |