在Windows10上运行时,Midas(DataSnap)Delphi应用程序变得慢很多

时间:2018-11-27 10:46:28

标签: delphi datasnap

我们有一个使用Midas(DataSnap)技术在Delphi 5下开发的应用程序。它使用客户端上的TClientDataSet和TSocketConnection连接到服务器应用程序。客户端应用程序和服务器应用程序位于同一本地网络上。

移动到Windows 10时,客户端应用程序的运行速度降低了50%。我们的测试设置包括一台服务器(SQL数据库+服务器层应用程序)和两个客户端:一个在Windows7下,另一个在Windows10下。两个客户端运行相同的EXE并运行相同的查询。问题是Windows10上的TClientDataSet比打开慢50%。
为什么会发生???

我们确实禁用了FireWall,Windows Defender和任何可能的防病毒软件-两者的性能没有任何明显的差异。

我的测试循环如下:

// Set parameters for the query     
ParamsQuery( VarArrayOf( ['PID','DISPENSEDATE'] ), VarArrayOf( [1234567, '2018-Sep-15' ] ) );  


for row := 1000 downto 0 do
begin
  DMDispensing.CDSTest.Close;
  DMDispensing.CDSTest.Open;
end;

Windows 7
   MSEC
   0 | DMDispensing CDSTestBeforeOpen
   0 | DMDispensing CDSTestBeforeGetRecords
   22 | DM分发CDSTestAfterGetRecords
   3 | DMDispensing CDSTestAfterOpen
   2 | DMDispensing CDSTestBeforeClose
   0 | DMDispensing CDSTestBeforeGetRecords
  0 | DM分发CDSTestAfterGetRecords
  0 | DMDispensing CDSTestAfterClose

Windows 10            
MSEC
0 | DMDispensing         CDSTestBeforeOpen    
0 | DMDispensing         CDSTestBeforeGetRecords 
31 | DMDispensing         CDSTestAfterGetRecords 
0 | DMDispensing         CDSTestAfterOpen     
0 | DMDispensing         CDSTestBeforeClose   
0 | DMDispensing         CDSTestBeforeGetRecords 
16 | DMDispensing         CDSTestAfterGetRecords
0 | DMDispensing         CDSTestAfterClose    

因此,通常一个循环在Windows7上花费27毫秒,在Windows10上花费37毫秒。

0 个答案:

没有答案