У нас есть приложение, разработанное под Delphi 5 с использованием технологии Midas (DataSnap).Он использует TClientDataSet на стороне клиента и TSocketConnection для подключения к приложению сервера.Клиентское приложение и серверное приложение находятся в одной локальной сети.
Клиентское приложение работало примерно на 50% медленнее при перемещении в Windows 10. Наша тестовая установка состоит из сервера (база данных SQL + приложение серверного уровня) и двух клиентов: один под Windows7, другой под Windows10.Оба клиента запускают один и тот же EXE-файл и выполняют один и тот же запрос.Проблема в том, что TClientDataSet в Windows10 примерно на 50% медленнее, чем при открытии.
Почему это происходит ???
Мы отключили FireWall, Защитник Windows и любой возможный антивирус - без видимой разницы в производительности.
Мой тестовый цикл выглядит следующим образом:
// 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 |DMDispensing CDSTestAfterGetRecords
3 |DMDispensing CDSTestAfterOpen
2 |DMDispensing CDSTestBeforeClose
0 |DMDispensing CDSTestBeforeGetRecords
0 |DMDispensing 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
Таким образом, обычно один цикл занимает 27 мсек в Windows7 и 37 мсек в Windows10.