Потеря 16 млсек.

Страницы: 1
RSS
Потеря 16 млсек., При обращении к Квику происходит потеря 16 млсек.
 
При обращении к Квику, даже если в этот момент Квик не обновляет данные и не производит никаких вычислений, происходит потеря 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), поэтому, кто сможет, проверьте на своих машинах и выложите сюда результат, было бы интересно сравнить.
 
Здравствуйте,
Больше похоже на таймер Windows, который по умолчанию как раз равен 15.6

ранее была похожая тема:
https://forum.quik.ru/messages/forum12/message7225/topic752/#message7225
 
Просто время, получаемое от системы, вы получаете с дискретностью в 15.6 мс
так работает виндовс в дефолтных настройках
 
Спасибо!
Страницы: 1
Читают тему
Наверх