Здравствуйте, гость ( Вход | Регистрация )

5 страниц V « < 2 3 4 5 >  
Ответить в эту темуОткрыть новую тему
> Проверка скорости обработки, --данных--
Madeus
сообщение 11.6.2020, 20:50
Сообщение #61


*****

Journeyman
Сообщений: 317
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 10949
Пользователь №: 19.451
Возраст: 32



Цитата(Fors1k @ 11.6.2020, 20:49) *

Здесь мы убедились, что это не так.


Я склоняюсь к тому, что в коде на 10 срок эта разница в пределах погрешности, а в крупных проектах так и есть, доступ к локальной переменной быстрее, чем к глобальной.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 21:03
Сообщение #62


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Fors1k @ 12.6.2020, 0:49) *

Было предположение о том, что доступ к локальным переменным быстрее, чем к глобальным.
Вам уже объяснили, что если в наивысшей области видимости написать local, то данные все равно будут глобальными:

Так и есть.
Я вашим же скриптом еще раз прогнал свой код и что получил средним арифметическим значением скорость локальных выше)
Код
[s]Глобальные 3.812 секунд[/s] Первый запуск показывает бОльшую цифру, поэтому тест можно не учитывать.
Глобальные 3.797 секунд
Глобальные 3.688 секунд
Глобальные 3.703 секунд
Глобальные 3.765 секунд
Глобальные 3.688 секунд

Локальные 3.796 секунд
Локальные 3.704 секунд
Локальные 3.703 секунд
Локальные 3.797 секунд
Локальные 3.703 секунд
Локальные 3.703 секунд

Убираем всё лишнее, и рассчитываем среднее:
Глобальные общее время 4453 / локальные 4406 т.е. разница 2% минимум. Но на больших этапах % будет увеличиваться в геометрической прогрессии, т.к. разница между числами наглядна и очевидна.


Вобщем-то да - одинаковые.


Цитата(Fors1k @ 12.6.2020, 0:49) *

Вам уже объяснили, что если в наивысшей области видимости написать local, то данные все равно будут глобальными:

Для чего конкретно? Я всегда пишу локальные внутри цикла или непосредственно за ними? Я уже в этом убедился, хотя не понял почему так.
Код
--lua
log"clear"log"mode compact"
local t1 = os.clock()
local F = findwindow("Блокнот")[1][1]
local function A() return(color (111, 111, F)) end
local function B() return(color (111, 111, F)) end

for k=1,6 do
t = os.clock()
h = findwindow("Блокнот")[1][1]
function G() return(color (111, 111, h)) end
function R() return(color (111, 111, h)) end
for i = 1, 1000 do
    if G() == 0 then
        a=1
    end
    if R() == 0 then
        a=2
    end
end
log ('Глобальные: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
end

for k=1,6 do
for i = 1, 1000 do
    if A() == 0 then
        a=1
    end
    if B() == 0 then
        a=2
    end
end
log ('Локальные: ' .. string.format("%.3f", os.clock() - t1) .. ' секунд')
end

Цитата
Глобальные: 3.859 секунд А это первый запуск, поэтому цифра такая большая...
Глобальные: 3.813 секунд
Глобальные: 3.969 секунд
Глобальные: 3.796 секунд
Глобальные: 3.875 секунд
Глобальные: 3.735 секунд

Локальные: 26.750 секунд
Локальные: 30.578 секунд
Локальные: 34.281 секунд
Локальные: 38.000 секунд
Локальные: 41.812 секунд
Локальные: 45.547 секунд




Но есть ли решение?

---------------
Что-то чушь Какая-то получается:
Код
--lua
log"clear"log"mode compact"


for k=1,6 do
t = os.clock()
h = findwindow("Блокнот")[1][1]
function G() return(color (111, 111, h)) end
function R() return(color (111, 111, h)) end
for i = 1, 1000 do
    if G() == 0 then
        a=1
    end
    if R() == 0 then
        a=2
    end
end
log ('Глобальные: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
end

t1 = os.clock()
F = findwindow("Блокнот")[1][1]
function A() return(color (111, 111, F)) end
function B() return(color (111, 111, F)) end
for k=1,6 do
for i = 1, 1000 do
    if A() == 0 then
        a=1
    end
    if B() == 0 then
        a=2
    end
end
log ('Локальные: ' .. string.format("%.3f", os.clock() - t1) .. ' секунд')
end

Цитата
Глобальные: 3.906 секунд
Глобальные: 3.688 секунд
Глобальные: 3.734 секунд
Глобальные: 3.844 секунд
Глобальные: 3.734 секунд
Глобальные: 3.813 секунд

Локальные: 3.812 секунд
Локальные: 7.547 секунд
Локальные: 11.375 секунд
Локальные: 15.078 секунд
Локальные: 18.750 секунд
Локальные: 22.578 секунд

Каждая послеующая обработка глобальных данных перед циклом увеличивает их время в прогресии
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 11.6.2020, 21:14
Сообщение #63


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26718
Пользователь №: 16.971
Возраст: 29



Цитата
Каждая послеующая обработка глобальных данных перед циклом увеличивает их время в прогресии

Потому что t1 = os.clock() не обнуляется в цикле.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 21:34
Сообщение #64


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 1:14) *

Потому что t1 = os.clock() не обнуляется в цикле.

Ну да.
Кстати, если посмотреть на одинаковую обработку данных то можно увидеть схожесть во времени обработки определённого типа данных

Цитата
Глобальные: 3.953 секунд
Глобальные: 3.860 секунд
Глобальные: 3.859 секунд
Глобальные: 3.875 секунд
Глобальные: 3.844 секунд
Глобальные: 3.859 секунд

Локальные: 3.844 секунд
Локальные: 3.844 секунд
Локальные: 3.844 секунд
Локальные: 3.859 секунд
Локальные: 3.859 секунд
Локальные: 3.875 секунд

Т.е. у нас и там и там присутствуют одинаковые данные и они повторяются, т.е. при обработке определённой информации одинаковы, как если бы влияло не время, а сложность обработки.... Вот скажем 844 встречается и там и там, как и 859, как и 875, но глобальные переменные первыми берут на себя нагрузку при запуске скрипта для инициализации переменных, возможно поэтому некоторые первые данные выше по времени тех что производятся ниже.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 22:02
Сообщение #65


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Вопрос скорости можно закрыть изучением данного треда:

https://stackoverflow.com/questions/2615496...s-global-in-lua


И офф. документацией:

http://www.lua.org/pil/4.2.html

Цитата:
Цитата

Moreover, the access to local variables is faster than to global ones.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 22:16
Сообщение #66


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Fors1k @ 11.6.2020, 17:16) *

Код
--lua
log"clear"
t = os.clock()
h = findwindow("Блокнот")[1][1]
function G() return(color (156, 102, h)) end
function R() return(color (369, 260, h)) end
for i = 1, 1000 do
    if G() == 0 then
        a=1
    end
    if R() == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
log(" ")
t = os.clock()
for i = 1, 1000 do
    if color (229, 233, h) == 0 then
        a=1
    end
    if color (767, 370, h) == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

Цитата

Затрачено времени: 11.210 секунд
Затрачено времени: 13.795 секунд

а почему у меня
Цитата
Затрачено времени: 4.157 секунд
Затрачено времени: 5.500 секунд

?

С привязкой:
Код
--lua
log"clear"
t = os.clock()
h = findwindow("Блокнот")[1][1]
function G() return(color (111, 111, h)) end
function R() return(color (111, 111, h)) end
for i = 1, 1000 do
    if G() == 0 then
        a=1
    end
    if R() == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
log(" ")
t = os.clock()
for i = 1, 1000 do
    if color (111, 111, h) == 0 then
        a=1
    end
    if color (111, 111, h) == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

Код
Затрачено времени: 3.625 секунд
Затрачено времени: 3.516 секунд


Без привязки:
Код
--lua
log"clear"
t = os.clock()
local h = findwindow("Блокнот")[1][1]
local function G() return(color (111, 111)) end
local function R() return(color (111, 111)) end
for i = 1, 1000 do
    if G() == 0 then
        a=1
    end
    if R() == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

--log(" ")
t = os.clock()
for i = 1, 1000 do
    if color (111, 111) == 0 then
        a=1
    end
    if color (111, 111) == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

Код
Затрачено времени: 0.375 секунд
Затрачено времени: 0.359 секунд

У меня что экран волшебный?

Цитата(Cockney @ 12.6.2020, 2:02) *

Вопрос скорости можно закрыть изучением данного треда:

https://stackoverflow.com/questions/2615496...s-global-in-lua

Ага, осталось рзобраться почему вопреки:
Цитата(cirus @ 10.6.2020, 18:43) *

Если получать цвет с перекрытого окна, то будет быстрее.


У меня скорость чтения с экрана выше чем с привязанного окна? Может потому что он не делал его workwindow?...
Ну да.
Только вот всё-равно:
Код
t = os.clock()
for i = 1, 1000 do
    if color (111, 111) == 0 then
        a=1
    end
    if color (111, 111) == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

Быстрее чем
Код
local h = findwindow ("Блокнот")
if  h then
    workwindow (h[1][1])
    end
local function G() return(color (111, 111, h)) end
local function R() return(color (111, 111, h)) end
for i = 1, 1000 do
    if G() == 0 then
        a=1
    end
    if R() == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

на 30%

Затрачено времени: 0.360 секунд
Затрачено времени: 0.484 секунд
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 22:25
Сообщение #67


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Цитата(Levo222 @ 11.6.2020, 22:16) *

Ага, осталось рзобраться почему вопреки:



Ваш вопрос не относится к тому что я привел. У Вас вопрос, относящийся к внутренностям пилота. Не луа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 22:29
Сообщение #68


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Cockney @ 12.6.2020, 2:25) *

Ваш вопрос не относится к тому что я привел. У Вас вопрос, относящийся к внутренностям пилота. Не луа.

Ну относится, я же спрашиваю есть ли что-то в Lua, что может ускорить работу функций пилота, или обойти их
т.е. быть быстрее чем:
Код
local t1 = os.clock()
for i = 1, 1000 do
    if color (111, 111) == 0 then
        a=1
    end
    if color (111, 111) == 0 then
        a=2
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t1) .. ' секунд')

Пока что функции луа только замедляют работу пилота, как видно выше)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 22:35
Сообщение #69


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Во-первых, функций луа в коде я не увидел. Во-вторых,

Затрачено времени: 0.360 секунд
Затрачено времени: 0.484 секунд

Что за задача, где разница 124мс критична ?

П.с. второй вариант замедлен за счет оберток G(), R(). На их вызов тратится время. Ну я время на привязку тоже уходит.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 22:38
Сообщение #70


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Cockney @ 12.6.2020, 2:35) *

Во-первых, функций луа в коде я не увидел.

А это что?
Код
function G() return(color (156, 102, h)) end

Функция пилота чтоли? У него нет таких функций, насколько я помню.
Цитата(Cockney @ 12.6.2020, 2:35) *

Что за задача, где разница 124мс критична ?

Неважно, где 124, там через минуту 30 секунд.

Цитата(Cockney @ 12.6.2020, 2:35) *

П.с. второй вариант замедлен за счет оберток G(), R(). На их вызов тратится время

А как определить их иначе?
Я же это твопрос с самого начала треда тут и мусолю))))))))))))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 22:42
Сообщение #71


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Цитата(Levo222 @ 11.6.2020, 22:38) *

А как определить их иначе?
Я же это твопрос с самого начала треда тут и мусолю))))))))))))



А зачем? что это дает ? Можно сразу использовать color().


Цитата(Levo222 @ 11.6.2020, 22:38) *

Неважно, где 124, там через минуту час.


Ерунда
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 22:49
Сообщение #72


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



АААААААААА ВСЁ РАЗОБРАЛСЯ!!!! ))0
всЁЁЁЁ
вРЕМЯ ТЕРЯЕТСЯ ПРИ ОБРАЩЕНИИ К
Код
local h = findwindow ("Блокнот")
if  h then
    workwindow (h[1][1])
    end

вот тебе и потерянные 30%
Как заменить это на функцию?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 22:56
Сообщение #73


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Цитата(Levo222 @ 11.6.2020, 22:49) *

Можно, а зачем тогда использовать Lua? Если он никакой прибавки не даёт.
Ну мы определили переменные за циклом, а скорость выполнения упала в 2 раза при обращении к ним скрипта в использовании стандартных функций. Кому это нужно?



О чем вообще речь ? какое падение в 2 раза ?

Цитата

Можно, а зачем тогда использовать Lua? Если он никакой прибавки не даёт.


Я не знаю что ответить. Ну напишите на языке пилота или ассемблере, будет, наверное, лучше.


Или приведите пример готового кода и спросите - ускорить можно или нет ? Вот, так оно лучше будет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 22:58
Сообщение #74


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Cockney @ 12.6.2020, 2:56) *

О чем вообще речь ? какое падение в 2 раза ?
Я не знаю что ответить. Ну напишите на языке пилота или ассемблере, будет, наверное, лучше.
Или приведите пример готового кода и спросите - ускорить можно или нет ? Вот, так оно лучше будет.

АААААААААААААААА ВСССССССССЁЁЁЁЁЁЁЁЁЁЁЁЁ
Цитата

АААААААААА ВСЁ РАЗОБРАЛСЯ!!!! ))0
всЁЁЁЁ
вРЕМЯ ТЕРЯЕТСЯ ПРИ ОБРАЩЕНИИ К
Код
local h = findwindow ("Блокнот")
if  h then
    workwindow (h[1][1])
    end

вот тебе и потерянные 30%
Как заменить это на функцию?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 23:01
Сообщение #75


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Разумеется оно теряется. Что тут происходит:

1) Идет поиск окна (чем больше окон тем больше время поиска)
2)Если нашли, то устанавливаем его как рабочее окно

Вы предлагаете чтобы это вообще 0 времени занимало или что ? Причем тут луа ? Тут вопрос логики. Вы либо ищете окно, либо нет. И все. Хотите ускорить код - не ищите окно, а привязывайте его по Ctrl+A.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 11.6.2020, 23:03
Сообщение #76


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26718
Пользователь №: 16.971
Возраст: 29



Проверять color на блокноте это изначально бредовая идея. Кстати, если бы кто-то читал вниматльнее, то я сразу написал, что скорость работы color с привязкой к окну зависит от приложения. Привяжись к 3d приложению или к браузеру и посмотри разницу:
Код
--lua
log'clear' log 'mode compact'
function R(x, y, h) return(color (x, y, h)) end

local t = os.clock()
for i = 1, 100 do
    if color (111, 111) == 0 then
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд\r\n')

t = os.clock()
for i = 1, 100 do
    if R(111, 111, workwindow()) == 0 then
    end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

Цитата
П.с. второй вариант замедлен за счет оберток G(), R(). На их вызов тратится время.

В сравнении с тем что тратится на получение цвета это вообще ничто.
Цитата
Можно, а зачем тогда использовать Lua? Если он никакой прибавки не даёт.

Функции пилота работают одинаково. Хоть на старом языке пилота, хоть на луа. Что тут непонятного? Если вызываем функцию color, то на её вызов и работу уйдет одинаково времени.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 11.6.2020, 23:05
Сообщение #77


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22548
Пользователь №: 16.156



Цитата(cirus @ 11.6.2020, 23:03) *

В сравнении с тем что тратится на получение цвета это вообще ничто.


Я просто не могу понять, что хочет человек, который дает вроде валидный код и просит вернуть ему скорость.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 23:22
Сообщение #78


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Cockney @ 12.6.2020, 3:01) *

а привязывайте его по Ctrl+A.

Так я так всю жизнь и делал, но вот сегодня меня тут ввели в заблуждение, сказав что надо привязывать окно а то оно не будет быстро искать. А как же я раньше искал если это всё работало? Я ничего не понимаю.

Цитата
Привяжись к 3d приложению или к браузеру и посмотри разницу:

привязался, разницы нету почти +100 мс, и при просадках ФПС до 200/300

Я спросил почему
Код
local G = color (100, 100)
local R = color (200, 200)
While 1 do
  if G == 0 then
    1
  else
    if R == 0 then
      2
    else
    end
  end
end

не работает такой формат, а именно почему не возвращает цвет из переменной, потому что хотелось бы проще для глаз без нагромождения

Цитата(cirus @ 12.6.2020, 3:03) *

--lua
log'clear' log 'mode compact'
function R(x, y, h) return(color (x, y, h)) end

local t = os.clock()
for i = 1, 100 do
if color (111, 111) == 0 then
end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд\r\n')

t = os.clock()
for i = 1, 100 do
if R(111, 111, workwindow()) == 0 then
end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')

Цитата
Затрачено времени: 0.031 секунд

Затрачено времени: 3.375 секунд




Да всё...
Код
--lua
log'clear' log 'mode compact'
local function R(x, y, h) return(color (x, y, h)) end

for k=1,6 do
local t = os.clock()
for i = 1, 100 do
    if color (111, 111) == 0 then
    end
end
log ('color: ' .. string.format("%.3f", os.clock() - t) .. ' секунд\r\n')
end

for k=1,6 do
local t1 = os.clock()
for i = 1, 100 do
    if R(111, 111) == 0 then
    end
end
log ('R: ' .. string.format("%.3f", os.clock() - t1) .. ' секунд')
end


Код
color: 0.031 секунд
color: 0.031 секунд
color: 0.016 секунд
color: 0.031 секунд
color: 0.047 секунд
color: 0.016 секунд


Код
R: 0.031 секунд
R: 0.047 секунд
R: 0.031 секунд
R: 0.031 секунд
R: 0.047 секунд
R: 0.031 секунд

Чё я туплю короче)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 11.6.2020, 23:27
Сообщение #79


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26718
Пользователь №: 16.971
Возраст: 29



Цитата
не работает такой формат, а именно почему не возвращает цвет из переменной

Потому что такой код не имеет смысла, присвоить значение переменной 1 раз, а потом её в цикле сравнивать. А смысл? Она не изменится, пока не будет присвоено новое значение.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 11.6.2020, 23:31
Сообщение #80


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 103
Пользователь №: 18.746



off
Цитата(Cockney @ 11.6.2020, 22:56) *
О чем вообще речь ?

Тоже часто задаюсь этим вопросом)

Цитата(Cockney @ 11.6.2020, 22:02) *
Moreover, the access to local variables is faster than to global ones.
Ну, это я видел, и вот мои мысли на этот счет. Local - понятие относительное, а не абсолютное. Как я понимаю, эта фраза не относится к переменным из наивысшей области видимости.
Цитата(cirus @ 11.6.2020, 23:03) *
скорость работы color с привязкой к окну зависит от приложения. Привяжись к 3d приложению

cirus прав.
Тест для блокнота:
Исходный код
--lua
log"clear"
t = os.clock()
h = findwindow("Блокнот")[1][1]
function G() return(color (156, 102, h)) end
function R() return(color (369, 260, h)) end
for i = 1, 100 do
if G() == 0 then
a=1
end
if R() == 0 then
a=2
end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
t = os.clock()
for i = 1, 100 do
if color (229, 233, h) == 0 then
a=1
end
if color (767, 370, h) == 0 then
a=2
end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
Цитата
Затрачено времени: 1.230 секунд
Затрачено времени: 1.389 секунд

Тест для браузера:
Исходный код
--lua
log"clear"
t = os.clock()
h= findwindow("Яндекс")[1][1]
function G() return(color (156, 102, h)) end
function R() return(color (369, 260, h)) end
for i = 1, 100 do
if G() == 0 then
a=1
end
if R() == 0 then
a=2
end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
t = os.clock()
for i = 1, 100 do
if color (229, 233, h) == 0 then
a=1
end
if color (767, 370, h) == 0 then
a=2
end
end
log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')
Цитата
Затрачено времени: 0.688 секунд
Затрачено времени: 0.860 секунд

Цитата(Cockney @ 11.6.2020, 22:35) *
второй вариант замедлен за счет оберток G(), R(). На их вызов тратится время.
Кстати, у меня в обоих случаях вызов из обертки быстрее.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

5 страниц V « < 2 3 4 5 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 12.7.2025, 11:36
Designed by Nickostyle