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