Добрый день,
Эта тема в основном для начинающих строителей роботов.
--------------------------
На вопрос как сохранить или как передать данные в другой скрипт и приложение,
я рекомендую начать с обмена через файлы.
--------------------
Как правило в ответ получаю - через файлы - это медленно.
На вопрос -откуда Вы это знаете -обычно ответа нет.
----------------
Аналогичный вопрос возникает при попытке передать данные из одного приложения в другое.
---------------
Тем кто, знает С for Lua, рекомендую mapping files, как самый универсальный и быстрый способ обмена,
если Вас не устраивает обычный обмен через файлы.
---------------
В этой теме я покажу как "медленно" реализуется обмен через файлы.
===============
Тест обмена через файлы в одном приложении.
-------------------
Написал вот такой тест:
Что он делает?
Создаем на диске два каталога Data и DataA до запуска скрипта.
Скрипт открывает в каждом из каталогов файл test.log.
-------------------
Далее в цикле 100 раз производится
запись с нечетным j в файл в Каталоге Data.
При обнаружении записи в файл , производим запись в файл в каталоге DataA по четным значениям j.
------------------
Таким образом, в файл каталога Data записываются ответы на запись в файл каталога DataA и наоборот.
---------------------
Каждая запись содержит значения j, текущее время и задержку обнаружения записи в очередной файл.
Результат Data/test.log:
Результат DataA/test.log:
Самое смешное то ,
что задержка измеряется в мкс
и составляет в среднем не более 10 . т.е. 0.000001 сек.
-------------------------
Это медленно?
Эта тема в основном для начинающих строителей роботов.
--------------------------
На вопрос как сохранить или как передать данные в другой скрипт и приложение,
я рекомендую начать с обмена через файлы.
--------------------
Как правило в ответ получаю - через файлы - это медленно.
На вопрос -откуда Вы это знаете -обычно ответа нет.
----------------
Аналогичный вопрос возникает при попытке передать данные из одного приложения в другое.
---------------
Тем кто, знает С for Lua, рекомендую mapping files, как самый универсальный и быстрый способ обмена,
если Вас не устраивает обычный обмен через файлы.
---------------
В этой теме я покажу как "медленно" реализуется обмен через файлы.
===============
Тест обмена через файлы в одном приложении.
-------------------
Написал вот такой тест:
Код |
---|
pD ="D:/QUIK_SCRIPT/nk_bot/Data/" fn=pD..name..".log"; Log=io.open(fn,"w"); pDA ="D:/QUIK_SCRIPT/nk_bot/DataA/" fnA=pDA..name..".log"; LogA=io.open(fnA,"w"); -------------------- local nF=nkevent.ccf(fn); local nFA=nkevent.ccf(fnA); local _,_,dHMS1=nkvm.D(); for j=1,100 do local _,_,dHMS=nkvm.D(); d=(1000000.*(dHMS-dHMS1))//1; Log:write(j..","..dHMS..","..d.."\n");Log:flush(); while true do if nkevent.wcf(nF) then dHMS1=dHMS; local C=Log; Log=LogA; LogA=C; local x=nF; nF=nFA; nFA=x break; end end end |
Создаем на диске два каталога Data и DataA до запуска скрипта.
Скрипт открывает в каждом из каталогов файл test.log.
-------------------
Далее в цикле 100 раз производится
запись с нечетным j в файл в Каталоге Data.
При обнаружении записи в файл , производим запись в файл в каталоге DataA по четным значениям j.
------------------
Таким образом, в файл каталога Data записываются ответы на запись в файл каталога DataA и наоборот.
---------------------
Каждая запись содержит значения j, текущее время и задержку обнаружения записи в очередной файл.
Результат Data/test.log:
Код |
---|
1,151047.6863891,790.0 3,151047.6865335,61.0 5,151047.6865586,10.0 7,151047.6865764,8.0 9,151047.6865931,8.0 11,151047.6866097,8.0 13,151047.6866333,15.0 15,151047.6866505,8.0 17,151047.6866669,8.0 19,151047.686683,8.0 21,151047.6866992,8.0 23,151047.6867155,8.0 25,151047.6867317,8.0 27,151047.6867478,8.0 29,151047.6867637,7.0 31,151047.6867809,8.0 33,151047.6867971,8.0 35,151047.6868131,8.0 37,151047.6868292,8.0 39,151047.6868453,8.0 41,151047.6868614,8.0 43,151047.6868775,8.0 45,151047.6868937,8.0 47,151047.6869098,8.0 49,151047.686926,8.0 51,151047.6869421,8.0 53,151047.6869583,8.0 55,151047.6869748,8.0 57,151047.6869909,8.0 59,151047.6870071,8.0 61,151047.687025,8.0 63,151047.6870415,8.0 65,151047.687059,8.0 67,151047.6870752,8.0 69,151047.6870911,8.0 71,151047.6871073,8.0 73,151047.6871234,8.0 75,151047.6871394,8.0 77,151047.6871554,8.0 79,151047.6871715,8.0 81,151047.6871876,8.0 83,151047.6872036,8.0 85,151047.6872198,8.0 87,151047.687236,8.0 89,151047.6872521,8.0 91,151047.6872683,8.0 93,151047.6872844,8.0 95,151047.6873004,8.0 97,151047.6873165,8.0 99,151047.6873325,8.0 |
Код |
---|
2,151047.6864724,83.0 4,151047.6865484,14.0 6,151047.6865676,9.0 8,151047.6865849,8.0 10,151047.6866013,8.0 12,151047.6866179,8.0 14,151047.686642,8.0 16,151047.6866586,8.0 18,151047.6866749,8.0 20,151047.6866911,8.0 22,151047.6867072,7.0 24,151047.6867237,8.0 26,151047.6867397,8.0 28,151047.6867558,8.0 30,151047.6867727,8.0 32,151047.686789,8.0 34,151047.686805,7.0 36,151047.6868212,8.0 38,151047.6868372,7.0 40,151047.6868533,8.0 42,151047.6868695,8.0 44,151047.6868856,8.0 46,151047.6869017,8.0 48,151047.6869179,8.0 50,151047.686934,8.0 52,151047.6869502,8.0 54,151047.6869665,8.0 56,151047.6869828,8.0 58,151047.686999,8.0 60,151047.6870167,9.0 62,151047.6870333,8.0 64,151047.6870509,9.0 66,151047.687067,8.0 68,151047.6870831,7.0 70,151047.6870991,8.0 72,151047.6871153,8.0 74,151047.6871314,7.0 76,151047.6871474,8.0 78,151047.6871635,8.0 80,151047.6871795,8.0 82,151047.6871956,8.0 84,151047.6872116,7.0 86,151047.6872278,8.0 88,151047.687244,8.0 90,151047.68726,7.0 92,151047.6872763,8.0 94,151047.6872924,8.0 96,151047.6873085,8.0 98,151047.6873245,8.0 100,151047.6873405,8.0 |
что задержка измеряется в мкс
и составляет в среднем не более 10 . т.е. 0.000001 сек.
-------------------------
Это медленно?