Попробовал гонять кое - какие тесты скорости своего скрипта.
Один из тестов пытался отределить время затрачиваемое непосредственно на системный вызов getQuoteLevel2
Код |
---|
local TheClassCode = "QJSIM"
local TheSecCode = "SBER"
local NumIteractions2 = 100000
local NumRepeats2 = 10
local StartTime = 0
local RunTime = 0
local SumRunTime = 0
local MaxRunTime = 0
local MinRunTime = 100500
local QuoteL2 = {}
function TestQuoteL2_2()
for TheRepeat =1, NumRepeats2, 1 do
StartTime = os.clock()
for TheIteraction =1, NumIteractions, 1 do
QuoteL2 = getQuoteLevel2(TheClassCode, TheSecCode)
end
RunTime = os.clock() - StartTime
SumRunTime = SumRunTime + RunTime
if RunTime < MinRunTime then
MinRunTime = RunTime
end
if RunTime > MaxRunTime then
MaxRunTime = RunTime
end
TheMessage = "Attempt # "..tostring(TheRepeat).." RunTime = "..tostring(RunTime)
message(TheMessage)
end
local AvgRunTime = SumRunTime / NumRepeats2
TheMessage = "Tested "..tostring(NumRepeats2).." times, "..tostring(NumIteractions2).." iteractions each"
message(TheMessage)
TheMessage = "Average run time = "..tostring(AvgRunTime).." for "..tostring(NumIteractions2).." iteractions"
message(TheMessage)
TheMessage = "Maximum run time = "..tostring(MaxRunTime)
message(TheMessage)
TheMessage = "Minimum run time = "..tostring(MinRunTime)
message(TheMessage)
end
function main()
TestQuoteL2_2()
end |
Это фрагмент разумеется, полный текст там слишком много букв для цитирования да и к вопросу отношения не имеет, еще ряд тестов уже моего кода. Так вот, результат работы этого конкретно теста:
Код |
---|
08.10.2018 0:15:42 Tested 10 times, 100000 iteractions each
08.10.2018 0:15:42 Average run time = 8.3163 for 100000 iteractions
08.10.2018 0:15:42 Maximum run time = 8.3400000000001
08.10.2018 0:15:42 Minimum run time = 8.2939999999999 |
В связи с тем что время вызова самой функции getQuoteLevel2 у меня получилось чуть ли не на порядок больше времени которое требуется моему скрипту на парсинг полученой таблицы (речь идет о стакане 10х10, для имитации деятельности осуществлялся двукратный доступ ко всем содержательнм полям) возник у меня вопрос.
Подскажите пожалуйста, порректно ли вообще измерять время на вызов функций квик подобным способом. Или "дерганье" их миллион раз подряд вызывает какие-то аномалии в работе квик?