При обращении к Квику, даже если в этот момент Квик не обновляет данные и не производит никаких вычислений, происходит потеря 16 млсек. Поясню на примере. Если выполнить следующий простенький скрипт, написанный на Lua:
IsRun = true
local time = os.clock()
for i = 0, 20 do
message(string.format('Цикл № %0.0f ,Время %0.3f сек',i, os.clock()-time), 1)
end
function main()
while IsRun do
sleep(1000)
end
end
function OnStop()
IsRun = false
end
то увидим следующий результат:
Дата Время Сообщение
15.02.2017 13:24:11 Цикл № 0 ,Время 0.000 сек
15.02.2017 13:24:11 Цикл № 1 ,Время 0.016 сек
15.02.2017 13:24:11 Цикл № 2 ,Время 0.016 сек
15.02.2017 13:24:11 Цикл № 3 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 4 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 5 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 6 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 7 ,Время 0.047 сек
15.02.2017 13:24:11 Цикл № 8 ,Время 0.047 сек
15.02.2017 13:24:11 Цикл № 9 ,Время 0.063 сек
15.02.2017 13:24:11 Цикл № 10 ,Время 0.063 сек
15.02.2017 13:24:11 Цикл № 11 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 12 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 13 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 14 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 15 ,Время 0.094 сек
15.02.2017 13:24:11 Цикл № 16 ,Время 0.094 сек
15.02.2017 13:24:11 Цикл № 17 ,Время 0.094 сек
15.02.2017 13:24:11 Цикл № 18 ,Время 0.110 сек
15.02.2017 13:24:11 Цикл № 19 ,Время 0.110 сек
15.02.2017 13:24:11 Цикл № 20 ,Время 0.110 сек
Из которого видно, что в среднем, за каждые 3-3.5 обработки в Lua теряются 16 млсек (иногда 15 млсек). При этом никаких вычислений у нас не происходит и Квик может даже не получать никаких данных (я проверял и в выходные - результат тот же). Аналогичное время теряется и при выводе через ODBC, думаю, что при выводе данных через DDE будет то же самое ( не проверял). Отсюда логично сделать вывод о том, что это какие-то потери Квика.
При исполнении данного примера, но, если вывод происходит внутри function main(), потери 16 млсек тоже наблюдаются, но существенно реже.
Хотелось бы понять из-за чего это происходит? Можно ли каким-то образом уменьшить это время потерь или хотя бы частоту их появления?
Допускаю, что что-то можно изменить в настройках Квика или его загрузке, тогда подскажите что? "Вывод по ODBC", "Экспорт в системы тех.анализа" и "Внешние транзакции" никак не влияют.
Возможно, что потеря именно данного времени (16 млсек) может быть как-то связана с характеристиками машины и операционной системы ( у меня Win XP, Квик 7.7.0.89), поэтому, кто сможет, проверьте на своих машинах и выложите сюда результат, было бы интересно сравнить.
IsRun = true
local time = os.clock()
for i = 0, 20 do
message(string.format('Цикл № %0.0f ,Время %0.3f сек',i, os.clock()-time), 1)
end
function main()
while IsRun do
sleep(1000)
end
end
function OnStop()
IsRun = false
end
то увидим следующий результат:
Дата Время Сообщение
15.02.2017 13:24:11 Цикл № 0 ,Время 0.000 сек
15.02.2017 13:24:11 Цикл № 1 ,Время 0.016 сек
15.02.2017 13:24:11 Цикл № 2 ,Время 0.016 сек
15.02.2017 13:24:11 Цикл № 3 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 4 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 5 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 6 ,Время 0.032 сек
15.02.2017 13:24:11 Цикл № 7 ,Время 0.047 сек
15.02.2017 13:24:11 Цикл № 8 ,Время 0.047 сек
15.02.2017 13:24:11 Цикл № 9 ,Время 0.063 сек
15.02.2017 13:24:11 Цикл № 10 ,Время 0.063 сек
15.02.2017 13:24:11 Цикл № 11 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 12 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 13 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 14 ,Время 0.079 сек
15.02.2017 13:24:11 Цикл № 15 ,Время 0.094 сек
15.02.2017 13:24:11 Цикл № 16 ,Время 0.094 сек
15.02.2017 13:24:11 Цикл № 17 ,Время 0.094 сек
15.02.2017 13:24:11 Цикл № 18 ,Время 0.110 сек
15.02.2017 13:24:11 Цикл № 19 ,Время 0.110 сек
15.02.2017 13:24:11 Цикл № 20 ,Время 0.110 сек
Из которого видно, что в среднем, за каждые 3-3.5 обработки в Lua теряются 16 млсек (иногда 15 млсек). При этом никаких вычислений у нас не происходит и Квик может даже не получать никаких данных (я проверял и в выходные - результат тот же). Аналогичное время теряется и при выводе через ODBC, думаю, что при выводе данных через DDE будет то же самое ( не проверял). Отсюда логично сделать вывод о том, что это какие-то потери Квика.
При исполнении данного примера, но, если вывод происходит внутри function main(), потери 16 млсек тоже наблюдаются, но существенно реже.
Хотелось бы понять из-за чего это происходит? Можно ли каким-то образом уменьшить это время потерь или хотя бы частоту их появления?
Допускаю, что что-то можно изменить в настройках Квика или его загрузке, тогда подскажите что? "Вывод по ODBC", "Экспорт в системы тех.анализа" и "Внешние транзакции" никак не влияют.
Возможно, что потеря именно данного времени (16 млсек) может быть как-то связана с характеристиками машины и операционной системы ( у меня Win XP, Квик 7.7.0.89), поэтому, кто сможет, проверьте на своих машинах и выложите сюда результат, было бы интересно сравнить.