Есть смысл делать так ? Это экономит ресурсы ?

Страницы: 1
RSS
Есть смысл делать так ? Это экономит ресурсы ?
 
local math_max      = math.max
local math_min      = math.min
local math_abs      = math.abs

math_abs(a-b)
                       
 
Если надо обработать много (много) в цикле, то да. В обычной практике - это просто дело вкуса и привычки.
Код
local k = 10local s = 100

for i = 1, 10000000 do
    k, s = math.max(k, s), math.min(k, s)
    k, s = k*i, s*i
    k, s = math.min(k, s), math.max(k, s)
end
[Done] exited with code=0 in 2.068 seconds


Код
local math_max = math.max
local math_min = math.min

local k = 10
local s = 100

for i = 1, 10000000 do
    k, s = math_max(k, s), math_min(k, s)
    k, s = k*i, s*i
    k, s = math_min(k, s), math_max(k, s)
end

[Done] exited with code=0 in 1.597 seconds
 
Спасибо, да действительно если много то экономия, в принципе есть смысл применять это
                       
 
Цитата
Евгений написал:
local math_max      = math.max
local math_min      = math.min
local math_abs      = math.abs

math_abs(a-b)
есть всегда.
вот пример:
Код
local a=100
local b=20
local math_abs      = math.abs
nkarray.start()
math.abs(a-b)
local t=0.1*nkarray.stop()
nkarray.start()
math_abs(a-b)
local t1=0.1*nkarray.stop()
print(t,t1)
результат( мкс): 0.6    0.1
Т е время выполнения сократилось в 6 раз.
 
Скомпилированный скрипт индикатора ускорит загрузку квика ? Если например там открыто 30 графиков с этим индикатором ?
                       
 
Цитата
Евгений написал:
Скомпилированный скрипт индикатора ускорит загрузку квика ? Если например там открыто 30 графиков с этим индикатором ?
нет.
"комплиляция" скрипта луа - это не создание машинного кода,
а замена текcта байт-кодом,
это делает и сам квик в момент загрузки скрипта
время на это уходит менее секунды.
 
Цитата
Nikolay написал:
Если надо обработать много (много) в цикле, то да. В обычной практике - это просто дело вкуса и привычки.
Код
   local  k  =  10local s  =   100 

 for  i  =   1 ,  10000000   do 
    k, s  =   math.max (k, s),  math.min (k, s)
    k, s  =  k * i, s * i
    k, s  =   math.min (k, s),  math.max (k, s)
 end   
[Done] exited with code=0 in 2.068 seconds


Код
   local  math_max  =  math.max
 local  math_min  =  math.min

 local  k  =   10 
 local  s  =   100 

 for  i  =   1 ,  10000000   do 
    k, s  =  math_max(k, s), math_min(k, s)
    k, s  =  k * i, s * i
    k, s  =  math_min(k, s), math_max(k, s)
 end   

[Done] exited with code=0 in 1.597 seconds
этот пример очень плохой
результат его запуска показывает что ускорение всего в 1.5 раза.
-----------
в этом тесте много накладных расходов не связанных с данным вопросом.
если же интересует именно присвоение функции локальной переменной то
надо делать лишь эти функции  т е
сравнивать
k, s  =   math.max (k, s),  math.min (k, s)
и
  k, s  =  math_max(k, s), math_min(k, s)
-------------------
в этом случае получаем  0.6 мкс и 0.2 мкс т е 3 раза
 
А комментарии  сильно влияют на скорость ?

или например роспись кода в одну строку и в несколько строк ?
                       
 
а пустые строки в файле скрипта могут влиять ?
                       
 
Цитата
Евгений написал:
А комментарии  сильно влияют на скорость ?

или например роспись кода в одну строку и в несколько строк ?
нет
Цитата
Евгений написал:
а пустые строки в файле скрипта могут влиять ?
нет
Страницы: 1
Читают тему
Наверх