速度與效率測試:
測試項目 * 計算1000次1+1=2 * 傳輸10000條100字節記錄 * 所花時間(ms) * 傳輸字節數 * 所花時間 傳輸字節數 Midas (Socket Connection) 26,047 366,000 2,359 1047,000 Midas (DCOM Connection) 812 933 2,047 1047,000 ADO直連數據庫 (兩層) 297 1046,000 Asta 3 壓縮 1,578 1100,000 RemoteObject2 HTTP 二進制 壓縮 8,641 791,000 2,515 1048,000 RemoteObject2 HTTP 二進制 不壓縮 7,765 783,000 2,391 1049,000 RemoteObject2 HTTP SOAP 11,687 1935,000 3,110 1052,000 RemoteObject2 TCP 二進制 壓縮 8,406 512,000 2,422 1049,000 RemoteObject2 TCP 二進制 不壓縮 6,547 504,000 2,484 1563,000 RemoteObject2 TCP SOAP 11,281 1673,000 RemoteObject3 HTTP 二進制 壓縮 11,625 504,000 RemoteObject3 HTTP 二進制 不壓縮 10,593 501,000 RemoteObject3 HTTP SOAP 15,640 1108,000 RemoteObject3 TCP 二進制 壓縮 11,172 512,000 RemoteObject3 TCP 二進制 不壓縮 10,203 504,000 RemoteObject3 TCP SOAP 15,547 1712,000結果分析:
* 以上測試涉及文件都在附件中的測試包中;都是連接的本機(localhost);空白的是沒有做測試的
* 傳輸字節數測量都是用的CommView 4.1 IP包檢測捕獲軟件,監測“Loopback”(127.0.0.1)設備;CommVIEw軟件安裝見測試包的tools目錄;字節數包括實際傳輸的數據和IP握手信息等,如果大於10K,則只保留到千位,可能每次測量會有一點點區別。
* 測試所花時間時CommVIEw停止捕獲IP包,測試3次左右,取中間值
* 測試計算1000次1+1=2:
中間都是實現類似以下方法:
function Sum(a, b: Integer): Integer;
begin
Result := a + b;
end;
其中RemoteObject 2、3的測試程序直接用的它自帶的MegaDemo例子,執行文件分別見測試包中的“1+1=2RemObjects SDK 2”和“1+1=2RemObjects SDK 3”目錄,後者是試用版,運行前需要先允許Delphi(不知道還有沒有其它限制),測試時都是設置的使用Indy;Midas和DCOM的測試是自己寫的程序,源程序和執行文件測試包中的“midas”目錄。