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

> Проверка скорости обработки, --данных--
Levo222
сообщение 10.6.2020, 11:34
Сообщение #1


*****

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



Есть ли разница в Lua между скоростью обработки
информации внутри цикла в таком формате:
Код

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

В отличие от такого:???
Код

While 1 do
  if color (100, 100) == 0 then
    1
  else
    if color (200, 200) == 0 then
      2
    else
    end
  end
end


Это пара переменных. А если блоков несколько, и они состоят из нескольких десятков сочетающихся между собой? Если ли разница в скорости при выходе за пределы цикла?
Может есть способ замерить милисекунды и погонять чтобы проверить наглядно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 11.6.2020, 12:05
Сообщение #2


**********

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



Код ошибочный. В первом цикле цвет не проверяется, только значение переменной.
Цитата
а вот еще как узнать какая именно часть скрипта наиболее затратна по времени?

Все функции, которые работают с цветом, color, findcolor, findimage.
Ускорить скрипт можно если не использовать функции пилота.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 12:19
Сообщение #3


*****

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



Цитата(cirus @ 11.6.2020, 16:05) *

Код ошибочный. В первом цикле цвет не проверяется, только значение переменной.

Вот это я<вырезано анти-матом>)

Ну и ладно
Хоть за километровые значения переменных узнали что почти нет разницы
Код
local t = os.clock()
local Gcer5vew53b5vb4e456vb3525b3t634wbtweb53w45345bq35ertwbt = color (100, 100, h)
local Rrntyriybes54v2warvw6be6e5b64e64646eb5a45byrbybrybeybrsy = color (200, 200, h)
for i = 1, 10000000000 do
  if Gcer5vew53b5vb4e456vb3525b3t634wbtweb53w45345bq35ertwbt == 0 then
    a = 1
  else
    if Rrntyriybes54v2warvw6be6e5b64e64646eb5a45byrbybrybeybrsy == 0 then
     a = 2
    else
    end
  end
end

log ('Затрачено времени: ' .. string.format("%.3f", os.clock() - t) .. ' секунд')


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

Цитата

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

Даже с меньшими символами дольше. Может потому что приоритет вышенаписанному в обработке отдаётся?

Цитата(cirus @ 11.6.2020, 16:05) *

Код ошибочный. В первом цикле цвет не проверяется

Как будет выглядеть нормальный код?)

Цитата(cirus @ 11.6.2020, 16:05) *

если не использовать функции пилота.

А если через другой компилятор? Есть варианты?
c
В Autoit вроде видел похожие функции
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 11.6.2020, 13:16
Сообщение #4


*****

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



Цитата(Levo222 @ 11.6.2020, 12:19) *
Как будет выглядеть нормальный код?)

Код
--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 секунд

Цитата(Levo222 @ 11.6.2020, 12:53) *
А вот что меня интересует - время проверки определённого участка кода:

Код
--lua
log "clear"
--code
t = os.clock()       -- Засечь начало здесь
--code
--code
--code
t1=(os.clock() - t)  -- Засечь окончание здесь
--code
log ('время промежутка: '..string.format("%.3f", t1)..' секунд')


Сообщение отредактировал Fors1k - 11.6.2020, 13:28


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.6.2020, 16:57
Сообщение #5


*****

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



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

Код

set hotkeystart {End}
--lua
log 'clear' log 'mode compact'
local h = findwindow ("Блокнот")
if  h then
    workwindow (h[1][1])
    end
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) .. ' секунд')


У меня вобще так ошибку выдаёт...
Хоть с локальными хоть с глобальными.
Где-то читал что функции не относятся к глобальным в плане обращения к ним если это не происходит из разных областей данных или они не содержат параметры, что и есть тут как мне кажется, хотя.. у меня то вообще ошибку выдаёт)
Т.е.
function G (self, callback, object, ...)
не тоже самое что
function G ()
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Levo222   Проверка скорости обработки   10.6.2020, 11:34
cirus   Если вызываются функции пилота, то скорость вообщ...   10.6.2020, 12:21
Levo222   Если вызываются функции пилота, то скорость вообщ...   10.6.2020, 12:53
Levo222   много времени по сравнению с любыми операциями в...   10.6.2020, 14:17
Levo222   минимум 16 мсек, с аэро 33 мсек, с привязкой быст...   10.6.2020, 17:51
cirus   Все функции пилота вызываются медленно. --lua log ...   10.6.2020, 13:53
Levo222   Все функции пилота вызываются медленно. Имеется в...   10.6.2020, 14:02
cirus   Нет. https://uopilot.uokit.com/wiki/index.php?tit...   10.6.2020, 14:13
Levo222   есть в меню правой кнопки мыши Это где?   10.6.2020, 14:34
cirus   В редакторе пилота. Нет. Нет. Это функции wina...   10.6.2020, 14:43
Levo222   В редакторе пилота. Ну так вот же? [img]https:/...   10.6.2020, 14:59
cirus   Это функции пилота. Встроенные функции луа в пунк...   10.6.2020, 15:04
Levo222   Это функции пилота. Встроенные функции луа в пунк...   10.6.2020, 15:26
cirus   Все что для версии 5.1. Без разницы, если не соб...   10.6.2020, 15:38
Levo222   зависит от приложения. А скорость отклика прилож...   10.6.2020, 17:19
Levo222   И еще есть ли способ сразу соотнести handle со все...   10.6.2020, 17:33
cirus   Нет. Неизвестно же какие переменные это координат...   10.6.2020, 17:58
Levo222   Не знаю, из предположений от фпс. Фпс монитора? ...   10.6.2020, 18:06
Levo222   какие переменные это координаты, а какие нет. ...   10.6.2020, 18:32
Levo222   Так, как привязать handle через Lua? Там же другой...   11.6.2020, 10:14
cirus   Какой пример нужен? Напишите на старом синтаксисе...   11.6.2020, 10:19
Levo222   Какой пример нужен? Напишите на старом синтаксисе...   11.6.2020, 10:32
cirus   У блокнота есть, редактор это дочернее окно. Ctrl...   11.6.2020, 10:52
Levo222   У блокнота есть, редактор это дочернее окно. Ctrl...   11.6.2020, 11:00
cirus   Что мешает проверить? Запустите цикл на миллиард ...   11.6.2020, 11:10
Levo222   Что мешает проверить? Запустите цикл на миллиард ...   11.6.2020, 11:53
Fors1k   У меня вобще так ошибку выдаёт... Потому, что вы н...   11.6.2020, 17:10
Levo222   Потому, что вы неправильно скопировали код из при...   11.6.2020, 17:38
Levo222   [code]--lua log"clear" t = os.clock(...   11.6.2020, 22:16
Cockney   Ага, осталось рзобраться почему вопреки: Ваш в...   11.6.2020, 22:25
Levo222   Ваш вопрос не относится к тому что я привел. У Ва...   11.6.2020, 22:29
Levo222   Все функции, которые работают с цветом А вот что...   11.6.2020, 12:53
cirus   Если уж речь идет о скорости, то не используйте гл...   11.6.2020, 13:36
Fors1k   Если уж речь идет о скорости, то не используйте г...   11.6.2020, 14:14
Cockney   Работа с глобальными переменными оказалась быстре...   11.6.2020, 14:56
Fors1k   На сколько понимаю - это частный случай.Тоже так д...   11.6.2020, 15:41
Cockney   Тест не совсем корректен. Под увеличением числа пе...   11.6.2020, 16:10
cirus   Может надо выкладывать весь код, а не кусок.   11.6.2020, 17:50
Levo222   Может надо выкладывать весь код, а не кусок. loc...   11.6.2020, 18:05
Fors1k   Тест не совсем корректен.Не совсем корректен относ...   11.6.2020, 18:06
Levo222   Тест проводился для проверки фразы: Надо проводи...   11.6.2020, 18:31
Cockney   Не совсем корректен относительно чего? Тест пров...   11.6.2020, 19:03
Cockney   Нет, здесь уже две области памяти. Следует отлич...   11.6.2020, 19:06
Madeus   Что-то мне подсказывает что результаты не совсем к...   11.6.2020, 18:49
Fors1k   больше похожи на погрешность. Да, я тоже к этому с...   11.6.2020, 19:05
Levo222   Практически одинаковые результаты, но global поче...   11.6.2020, 19:21
Fors1k   Не знаю, что за патчи, у меня самый обычный пилот)...   11.6.2020, 19:29
Levo222   Не знаю, что за патчи, у меня самый обычный пилот...   11.6.2020, 19:33
Fors1k   У меня то есть Ну запустите еще раз, получите друг...   11.6.2020, 19:47
Levo222   Разницы в скорости нет. Вот, запустите этот код(...   11.6.2020, 20:00
cirus   Проводите нормальные тесты:   11.6.2020, 19:36
Levo222   большой объем таких переменных. Дак каких таких ...   11.6.2020, 19:49
Madeus   Global Var: 0.01815 секунд Loacal Var: 0.0...   11.6.2020, 20:12
Fors1k   Ну вот мы и убедились, что разницы в скорости нет)...   11.6.2020, 20:14
Levo222   что является погрешностью. Это не погрешность по...   11.6.2020, 20:19
Fors1k   Это не погрешность погрешностью я называю когда т...   11.6.2020, 20:27
Levo222   Даже не знаю, как это комментировать. Да я напис...   11.6.2020, 20:34
Madeus   Цитата из книги: "Хороший стиль программир...   11.6.2020, 20:29
Fors1k   "Более того, доступ к локальной переменн...   11.6.2020, 20:49
Madeus   Здесь мы убедились, что это не так. Я склоняюсь...   11.6.2020, 20:50
Levo222   Было предположение о том, что доступ к локальным ...   11.6.2020, 21:03
cirus   Потому что t1 = os.clock() не обнуляется в цикле.   11.6.2020, 21:14
Levo222   Потому что t1 = os.clock() не обнуляется в цикле....   11.6.2020, 21:34
Cockney   Вопрос скорости можно закрыть изучением данного тр...   11.6.2020, 22:02
Cockney   Во-первых, функций луа в коде я не увидел. Во-втор...   11.6.2020, 22:35
Levo222   Во-первых, функций луа в коде я не увидел. А эт...   11.6.2020, 22:38
Cockney   А как определить их иначе? Я же это твопрос с сам...   11.6.2020, 22:42
Levo222   АААААААААА ВСЁ РАЗОБРАЛСЯ!!!! ))0 ...   11.6.2020, 22:49
Cockney   Можно, а зачем тогда использовать Lua? Если он ни...   11.6.2020, 22:56
Levo222   О чем вообще речь ? какое падение в 2 раза ? Я н...   11.6.2020, 22:58
Fors1k   [quote name='Cockney' post='437494' date='11.6.202...   11.6.2020, 23:31
Cockney   Разумеется оно теряется. Что тут происходит: 1) И...   11.6.2020, 23:01
Levo222   а привязывайте его по Ctrl+A. Так я так всю жиз...   11.6.2020, 23:22
cirus   Проверять color на блокноте это изначально бредова...   11.6.2020, 23:03
Cockney   В сравнении с тем что тратится на получение цвета...   11.6.2020, 23:05
cirus   Потому что такой код не имеет смысла, присвоить з...   11.6.2020, 23:27
Levo222   а потом её в цикле сравнивать. Не сравнивать а ...   11.6.2020, 23:31
Cockney   Не сравнивать а проверять Интересное мнение ...   12.6.2020, 0:03
Levo222   Никто не мешает присваивать в G() и проверять там...   12.6.2020, 0:13
Cockney   В чем смысл ? зачем ? какие переменные ?   12.6.2020, 14:29
Levo222   Чтобы соотнести их с точками запроса colora. Своег...   12.6.2020, 15:44
cirus   Если нормально написать что хотите сделать, то бол...   12.6.2020, 15:49
Fors1k   Если нормально написать что хотите сделать, то бол...   12.6.2020, 15:52
Levo222   Я, наконец-то понял чего он хочет. После:--lua ...   12.6.2020, 16:19
Levo222   Если нормально написать что хотите сделать, то бо...   12.6.2020, 16:05
cirus   Нет конечно.   12.6.2020, 16:25
Levo222   Нет конечно. Ну findwindow же стандартная функци...   12.6.2020, 16:27
cirus   Она вызывается 1 раз вначале скрипта и всё.   12.6.2020, 16:30
Levo222   Она вызывается 1 раз вначале скрипта и всё. Это ...   12.6.2020, 16:45
cirus   Куда и что вписывать? Функция findwindow для того...   12.6.2020, 17:22
Levo222   Куда и что вписывать? Функция findwindow для того...   12.6.2020, 18:03
cirus   Что значит хуже?   12.6.2020, 18:09
Levo222   Что значит хуже? Это значит что там больше косты...   12.6.2020, 18:11


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

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