Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: mahadin on August 12, 2015, 01:03:09 AM

Title: waitms и загрузка цп
Post by: mahadin on August 12, 2015, 01:03:09 AM
такой вопрос, сколько должно быть waitms в зацикленном скрипте, чтобы он вообще не нагружал проц, к примеру через каждые "n-oe" число строчек скрипта, должен стоять waitms("n", хотелось бы узнать оптимальное число ms)
Title: Re: waitms и загрузка цп
Post by: Луций on August 12, 2015, 01:03:59 AM
50 мс обычно хватает
Title: Re: waitms и загрузка цп
Post by: mahadin on August 12, 2015, 01:07:06 AM
50 мс обычно хватает
один waitms(50) в конце скрипта, или их несколько должно быть? у меня с одним всеравно грузит +10-15% к цп
Title: Re: waitms и загрузка цп
Post by: Vint on August 12, 2015, 09:43:35 AM
"в зацикленном скрипте"... смотря что в этом скрипте.
Как минимум должна быть одна задержка в каждом цикле FOR/WHILE, если в цикле анализ экрана или клики или запись/чтение файлов. Задержка должна выполняться всегда, пока цикл не завершился.

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

Желательно разбавить скрипт в местах последовательных GETSCREEN. Если идут функции работы с экраном несколько штук подряд, то нужно учесть и варианты когда по логике скрипт будет проскакивать условия ничего не делая или в которых задержки не будут работать.
Пример:
Code: (clickermann) [Select]
GETSCREEN
IF(PXL(100, 100) = 255)
   $n = $s * 10 + 320
END_IF
IF(PXL(100, 100) = 14284031)
   $n = $s * 5 + 160
   mysub($n)
END_IF

GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
   MOVE(10,10)
   WAITMS(30)
END_IF

GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "file1.bmp")
   LCLICK($_return1,$_return2)
   WAITMS(100)
END_IF

Если при работе этого кода все поиски ничего не дадут и условия не выполнятся, то загрузка проца вырастет из-за череды GETSCREEN-поиск/условие
Title: Re: waitms и загрузка цп
Post by: mahadin on August 12, 2015, 11:40:50 AM
"в зацикленном скрипте"... смотря что в этом скрипте.
Как минимум должна быть одна задержка в каждом цикле FOR/WHILE, если в цикле анализ экрана или клики или запись/чтение файлов. Задержка должна выполняться всегда, пока цикл не завершился.

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

Желательно разбавить скрипт в местах последовательных GETSCREEN. Если идут функции работы с экраном несколько штук подряд, то нужно учесть и варианты когда по логике скрипт будет проскакивать условия ничего не делая или в которых задержки не будут работать.
Пример:
[spoiler]
Code: (clickermann) [Select]
GETSCREEN
IF(PXL(100, 100) = 255)
   $n = $s * 10 + 320
END_IF
IF(PXL(100, 100) = 14284031)
   $n = $s * 5 + 160
   mysub($n)
END_IF

GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
   MOVE(10,10)
   WAITMS(30)
END_IF

GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "file1.bmp")
   LCLICK($_return1,$_return2)
   WAITMS(100)
END_IF
[/spoiler]
Если при работе этого кода все поиски ничего не дадут и условия не выполнятся, то загрузка проца вырастет из-за череды GETSCREEN-поиск/условие
спасибо за пояснение
вот мой скрипт
Code: (clickermann) [Select]
bbb:
GETSCREEN
IF_PIXEL_IN (167,9,167,9,760320)
KEYPRESS(#N)
waitms(160)
goto(aaa)
ELSE
waitms(160)
goto(aaa)
END_IF
aaa:
GETSCREEN
IF_PIXEL_IN (167,30,167,30,760320)
KEYPRESS(#M)
waitms(160)
goto(ccc)
ELSE
waitms(160)
goto(ccc)
END_IF
ccc:
GETSCREEN
IF_PIXEL_IN (167,51,167,51,760320)
KEYPRESS(#J)
waitms(160)
goto(bbb)
ELSE
WAITMS(160)
goto(bbb)
END_IF

долго тестировал и выявил что проц не нагружается только лиш при 160 мс, но при этом четкость работы скрипта немножко снижается,  при 100 мс проц нагружался на 2-5%
Title: Re: waitms и загрузка цп
Post by: dramster on August 12, 2015, 01:37:05 PM
Code: (clickermann) [Select]
$t=10

GETSCREEN(167,9,168,52)

IF(pxl(167,9,167,9) = 760320)
  KEYPRESS(#N)
END_IF
waitms($t)
IF(pxl(167,30,167,30) = 760320)
  KEYPRESS(#M)
END_IF
waitms($t)
IF(pxl(167,51,167,51) = 760320)
  KEYPRESS(#J)
END_IF
waitms($t)

нагрузка на проц - 0%

код не верный, неохота исправлять, необращяйте вни мания
Title: Re: waitms и загрузка цп
Post by: Oraven on August 12, 2015, 01:37:43 PM
Ты в курсе что твои ГОТО в скрипте не играю никакой роли и если их убрать все будет выполняться точно также? Если сократить область снимка GETSCREEN нагрузка уменьшится, особенно если у тебя монитор 1900+

Вот оптимальный код
Code: (clickermann) [Select]
GETSCREEN(167,9,167,51)
IF(PXL(167,9) = 760320)
   KEYPRESS(#N)
   waitms(160)
   GETSCREEN(167,9,167,51)
END_IF

IF(PXL(167,30) = 760320)
   KEYPRESS(#M)
   waitms(160)
   GETSCREEN(167,9,167,51)
END_IF

IF(PXL(167,51) = 760320)
   KEYPRESS(#J)
   waitms(160)
   GETSCREEN(167,9,167,51)
END_IF

WAITMS(50) // общая задержка



Title: Re: waitms и загрузка цп
Post by: Oraven on August 12, 2015, 01:41:55 PM
нагрузка на проц - 0%

Что за хрень ты там понаписал.  ;D Слишком много цифр
Title: Re: waitms и загрузка цп
Post by: dramster on August 12, 2015, 01:45:42 PM
исправил   :D


пфффффф, необращяйте внимание, чето у меня помутнения какието, неисправил
Title: Re: waitms и загрузка цп
Post by: Oraven on August 12, 2015, 01:53:24 PM
исправил   :D

Функция PXL ищет в одной точке, поэтому нужны 2а числа а не четыре!
IF(PXL(167,9) = 760320)
Title: Re: waitms и загрузка цп
Post by: mahadin on August 12, 2015, 02:38:01 PM
нашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работало.
Title: Re: waitms и загрузка цп
Post by: Vint on August 12, 2015, 02:41:37 PM
Вроде бы пока не пофиксили, поэтому
Code: (clickermann) [Select]
GETSCREEN(167,9,168,52)
Title: Re: waitms и загрузка цп
Post by: Vint on August 12, 2015, 02:42:29 PM
нашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работало
Это реклама программы?  :D ;D ;D
Title: Re: waitms и загрузка цп
Post by: mahadin on August 12, 2015, 02:46:56 PM
нашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работало
Это реклама программы?  :D ;D ;D
нет, небыло такой цели, если здесь запрещено называть другие программы то извините, уберу. Просто сказал на всякий случай, вдруг у кого проц грузиться будет
Title: Re: waitms и загрузка цп
Post by: Vint on August 12, 2015, 05:07:16 PM
Нет. Просто так звучит похоже.

P.S. Там смайлы...
Title: Re: waitms и загрузка цп
Post by: Oraven on August 12, 2015, 07:06:53 PM
Вроде бы пока не пофиксили, поэтому
Code: (clickermann) [Select]
GETSCREEN(167,9,168,52)

Пофиксили!
Title: Re: waitms и загрузка цп
Post by: Vint on August 13, 2015, 08:58:49 AM
Ну и хорошо. Не проверял просто, делаю с коррекцией.

Тем более что эта версия - Clickermann v4.11 build 003 выложина для скачивания только на форуме, а не на главном сайте. Там вообще build 000. Люди скачивают максимум её.
Не редко сталкиваюсь, что используют даже не 4.11, а старее. Чаще других 4.10
Title: Re: waitms и загрузка цп
Post by: Oraven on August 13, 2015, 01:07:52 PM
Тем более что эта версия - Clickermann v4.11 build 003 выложина для скачивания только на форуме, а не на главном сайте. Там вообще build 000. Люди скачивают максимум её.

Все там обновлено, v4.11 build 003 самая последняя со всеми исправлениями. Да надпись стоило бы исправить.

Title: Re: waitms и загрузка цп
Post by: Vint on August 13, 2015, 01:34:11 PM
Написано 000, вот и думаю 000. Кто его будет перекачивать и сравнивать, правда или нет.
Привык верить написанному.