我有一個客戶端服務器應用程序,它爲客戶端請求的數據交換XML文檔。本質上,用戶輸入一些搜索約束(要匹配的屬性),客戶端與兩個系統進行通信以獲取數據(來自數據庫的一些數據和來自文件服務器的一些數據)。爲Web服務計算吞吐量下載
從文件服務器(歸檔數據文件)返回的數據比從服務器返回的元數據大很多,並且相應需要更多時間來執行。
用戶要求我提供關於下載歸檔數據所需時間以及下載速度(下載後)的指標。
客戶端服務器與異步I/O和衆多線程進行通信,因此我不能只使用啓動/停止計時器來完成此操作。
我目前實現將按這樣:
- 記錄當前蜱(這是一個長期運行的進程那麼蜱分辨率是罰款)
- 手從請求到web服務Asyncronously。
- ---等待---
- 獲取當前蜱
- 獲取文檔的大小返回(有一些開銷不是從SOAP信封佔但這是好的,我認爲)
- Rate =(Document Size/1024)/(End Ticks - Start Ticks)* Ticks/Second(I let a timespan object do this)
起初我以爲這種方法沒問題,但我有用戶報告小樣本的比率比大樣本的要低得多,並且在一次執行中費率變化很大。
有沒有更好的方法來計算這個比率更容易受此影響?對於較大的檔案來說,速度會更快,但在測試中,我認爲它比文件大小高10-40倍,這是沒有意義的。
傳輸的平均數據遠大於100K,但小於100M(我知道範圍很大)。由於我使用的是持久連接,我會假設建立時間被固定,也許這個假設是錯誤的。 – GrayWizardx 2009-12-19 18:50:39