Author Topic: waitms и загрузка цп  (Read 6160 times)

0 Members and 1 Guest are viewing this topic.

mahadin

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
waitms и загрузка цп
« on: August 12, 2015, 01:03:09 AM »
такой вопрос, сколько должно быть waitms в зацикленном скрипте, чтобы он вообще не нагружал проц, к примеру через каждые "n-oe" число строчек скрипта, должен стоять waitms("n", хотелось бы узнать оптимальное число ms)

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: waitms и загрузка цп
« Reply #1 on: August 12, 2015, 01:03:59 AM »
50 мс обычно хватает

mahadin

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: waitms и загрузка цп
« Reply #2 on: August 12, 2015, 01:07:06 AM »
50 мс обычно хватает
один waitms(50) в конце скрипта, или их несколько должно быть? у меня с одним всеравно грузит +10-15% к цп

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: waitms и загрузка цп
« Reply #3 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-поиск/условие
« Last Edit: August 12, 2015, 09:45:29 AM by Vint »


mahadin

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: waitms и загрузка цп
« Reply #4 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%
« Last Edit: August 12, 2015, 02:43:50 PM by Vint »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: waitms и загрузка цп
« Reply #5 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%

код не верный, неохота исправлять, необращяйте вни мания
« Last Edit: August 12, 2015, 01:49:17 PM by dramster »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: waitms и загрузка цп
« Reply #6 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) // общая задержка




Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: waitms и загрузка цп
« Reply #7 on: August 12, 2015, 01:41:55 PM »
нагрузка на проц - 0%

Что за хрень ты там понаписал.  ;D Слишком много цифр

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: waitms и загрузка цп
« Reply #8 on: August 12, 2015, 01:45:42 PM »
исправил   :D


пфффффф, необращяйте внимание, чето у меня помутнения какието, неисправил
« Last Edit: August 12, 2015, 01:47:31 PM by dramster »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: waitms и загрузка цп
« Reply #9 on: August 12, 2015, 01:53:24 PM »
исправил   :D

Функция PXL ищет в одной точке, поэтому нужны 2а числа а не четыре!
IF(PXL(167,9) = 760320)

mahadin

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: waitms и загрузка цп
« Reply #10 on: August 12, 2015, 02:38:01 PM »
нашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работало.
« Last Edit: August 12, 2015, 02:45:01 PM by mahadin »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: waitms и загрузка цп
« Reply #11 on: August 12, 2015, 02:41:37 PM »
Вроде бы пока не пофиксили, поэтому
Code: (clickermann) [Select]
GETSCREEN(167,9,168,52)


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: waitms и загрузка цп
« Reply #12 on: August 12, 2015, 02:42:29 PM »
нашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работало
Это реклама программы?  :D ;D ;D


mahadin

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: waitms и загрузка цп
« Reply #13 on: August 12, 2015, 02:46:56 PM »
нашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работало
Это реклама программы?  :D ;D ;D
нет, небыло такой цели, если здесь запрещено называть другие программы то извините, уберу. Просто сказал на всякий случай, вдруг у кого проц грузиться будет
« Last Edit: August 12, 2015, 02:58:56 PM by mahadin »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: waitms и загрузка цп
« Reply #14 on: August 12, 2015, 05:07:16 PM »
Нет. Просто так звучит похоже.

P.S. Там смайлы...