摘要:[筆記]從別台Server抓檔案到loacal端(下)
續上篇
方法一可能會有人覺得太鳥,不夠漂亮
方法二的話,同事比較多人用,個人覺得會不會有磁碟機代號衝突的問題
因為如果寫成共用服務,mutlithread在跑,難保會有衝突的問題
方法三的話,實際測試是失敗的=.=,懷疑文章作者沒有測過,不然就是沒把connection斷乾淨
因為一直出現錯誤的登入者帳號,要用NET USE打通才能下載檔案
而且下載回來的檔案日期會變動,其他三種並不會
方法四是文章作者所推崇的,的確這樣做看起來比較漂亮
不過在實際在執行發現花的時間是好幾倍,主要花在File.Copy的時間上,
不知道是溝通上回應需要花這麼多的時間還是有其他設定的問題。
以下就以可以抓檔為原則,可以無視第一次(四種方法第一次跟第二次有蠻大的落差)
方法一 | 方法二 | 方法三 | 方法四 | |
1 | 0.48S | 1.33S | 0.58S | 0.36S |
2 | 0.47S | 1.05S | 0.52S | 0.36S |
3 | 0.45S | 1.16S | 0.45S | 0.33S |
4 | 0.56S | 1.13S | 0.61S | 0.34S |
以上的測試數據,我是用VS2010 UnitTest上的執行時間
四種都是傳入同樣的參數
方法二比方法一多花一些時間是正常的,畢竟需要再做映照磁碟機的動作。
方法三看起來就一樣,可能.Net Framework的內部處理優化很相似
比較弔詭的方法四,一開始的時間高達15S,後來的時間變得比其他方法的執行時間還短
這其中的差異還有待去追查,不過一開始的時間這麼久並不符合我的需求
因為我的服務起來要抓檔每次都要等他這麼久會被影響到效能
PS.
後來發現第一次比較久,是因為TestDriven啟動的時間,所以以下又做一張表
每次都重新啟動
方法一 | 方法二 | 方法三 | 方法四 | |
1 | 2.08S | 2.89S | 2.27S | 17.00S |
2 | 2.08S | 2.70S | 2.22S | 1.22S |
3 | 2.09S | 2.72S | 2.27S | 2.03S |
4 | 2.14S | 2.81S | 2.30S | 2.08S |
這樣看起來的執行時間比較正常,差異跟之前的比較也相似