Добрый день,
По просьбе разработчиков
выкладываю для общего пользования
свой тест измерения времени подключения источников данных.
Так как ранее использовался очень большой скрипт,
то пришлось написать специально тест для общего пользования.
-------------------
В тесте используется два таймера.
Один - мой на основе высокоточного счетчика OC на СИ. Выкладывал его на форуме. Его квант 0.1мкс.
Второй - на основе socket. Для исключения сомнения в измерениях. Его квант 1 мс.
-------------------
Начинающие писатели роботов, можете позаимствовать мое решение организации очереди.
Это результаты работы теста на моем компе:
Время подключения источников с интервалом 1,5,30 минут составляет 30 мкс.
Время подключения тиков 12900 мкс. замедление в 400 раз.
==================
Демо сервер КВИК.
версия КВИК 11.1.0.45
По просьбе разработчиков
выкладываю для общего пользования
свой тест измерения времени подключения источников данных.
Так как ранее использовался очень большой скрипт,
то пришлось написать специально тест для общего пользования.
-------------------
В тесте используется два таймера.
Один - мой на основе высокоточного счетчика OC на СИ. Выкладывал его на форуме. Его квант 0.1мкс.
Второй - на основе socket. Для исключения сомнения в измерениях. Его квант 1 мс.
-------------------
Начинающие писатели роботов, можете позаимствовать мое решение организации очереди.
| Код |
|---|
--тест скорости подключения источников данных -автор nikolz
name="testnk"
paths = "D:/nkarray/"
package.cpath =paths.."?.dll";
require "nkarray"
p2 = "D:/luasocket/"
package.cpath =package.cpath ..";"..p2.."?.dll";
package.path =package.path..p2.."?.lua;"
socket = require("socket")
path = "D:\\QUIK_SCRIPT\\nk_bot\\"
Log=io.open(path..name..".log","w")
Ntp=0; tp={}
local ds_int={INTERVAL_M1,INTERVAL_M5,INTERVAL_M30,INTERVAL_TICK};
function main()
local t,int,tms,t1;
while true do
while Ntp>0 do
t=tp[Ntp]; Ntp=Ntp-1 clas=t[1] sec=t[2]
for i=1,#ds_int do ds={}
t2=socket.gettime()*1000.
nklib.startB();
int=ds_int[i];
local d,err; while d==nil do d,err=CreateDataSource(clas,sec,int); end
d:SetEmptyCallback();
t1=0.01*nklib.stopB();
tms=(socket.gettime()*1000.-t2)//1
Log:write("interval="..int..",sec="..tostring(sec)..",tnk="..t1.."мкс, tsocet="..(tms).."мc\n");Log:flush();
end
end
sleep(1);
end
end
function OnInit(pfile) fconnect=isConnected(); end
function OnParam(c,s) Ntp=Ntp+1; tp[Ntp]={c,s}; end
|
| Код |
|---|
interval=1,sec=VTBR,tnk=39.41мкс, tsocet=0.0мc interval=5,sec=VTBR,tnk=20.17мкс, tsocet=0.0мc interval=30,sec=VTBR,tnk=17.82мкс, tsocet=0.0мc interval=0,sec=VTBR,tnk=13072.46мкс, tsocet=130.0мc interval=1,sec=VSMO,tnk=57.81мкс, tsocet=0.0мc interval=5,sec=VSMO,tnk=21.82мкс, tsocet=0.0мc interval=30,sec=VSMO,tnk=21.73мкс, tsocet=0.0мc interval=0,sec=VSMO,tnk=13581.32мкс, tsocet=135.0мc interval=1,sec=UGLD,tnk=57.16мкс, tsocet=0.0мc interval=5,sec=UGLD,tnk=25.99мкс, tsocet=0.0мc interval=30,sec=UGLD,tnk=26.66мкс, tsocet=1.0мc interval=0,sec=UGLD,tnk=12974.53мкс, tsocet=128.0мc interval=1,sec=NMTP,tnk=57.63мкс, tsocet=0.0мc interval=5,sec=NMTP,tnk=19.32мкс, tsocet=0.0мc interval=30,sec=NMTP,tnk=17.54мкс, tsocet=0.0мc interval=0,sec=NMTP,tnk=12912.37мкс, tsocet=129.0мc interval=1,sec=VRSB,tnk=35.37мкс, tsocet=0.0мc interval=5,sec=VRSB,tnk=27.25мкс, tsocet=0.0мc interval=30,sec=VRSB,tnk=21.7мкс, tsocet=0.0мc interval=0,sec=VRSB,tnk=12604.62мкс, tsocet=125.0мc interval=1,sec=SIBN,tnk=34.2мкс, tsocet=0.0мc interval=5,sec=SIBN,tnk=43.41мкс, tsocet=0.0мc interval=30,sec=SIBN,tnk=18.91мкс, tsocet=0.0мc interval=0,sec=SIBN,tnk=12793.29мкс, tsocet=127.0мc |
Время подключения тиков 12900 мкс. замедление в 400 раз.
==================
Демо сервер КВИК.
версия КВИК 11.1.0.45