Author Topic: BenchMark Test  (Read 17108 times)

0 Members and 1 Guest are viewing this topic.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: BenchMark Test
« Reply #15 on: November 06, 2012, 01:47:49 PM »
Данный тест оценивает время затрачиваемое на COLORMODE
Поясните  чайникам,  если не трудно.
Вот допустим я узнал   параметры теста, конкретно  для своего компа.
 Какую  временную задержку после  команды "колормод" теперь  я должен поставить?
Откуда  из  лога  брать  число  времени,   для  этой задержки ?
Бабочки полёт будит тихую поляну в солнечном свету...

Dr_midon

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: BenchMark Test
« Reply #16 on: November 06, 2012, 01:55:29 PM »
Ничего не надо - программа не параллельная, а последовательная. Т.е. одна функция отработала и только потом вторая запускается. А тут мы пис***** меряемся  ;D

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: BenchMark Test
« Reply #17 on: November 06, 2012, 02:08:38 PM »
Ничего не надо - программа не параллельная, а последовательная. 
Тут корифеи рекомендуют задержки ставить в скрипте  между командами кликера.
 Отсюда  и возник мой  вопрос.
Бабочки полёт будит тихую поляну в солнечном свету...

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: BenchMark Test
« Reply #18 on: November 06, 2012, 06:29:44 PM »
Ставить их надо чтобы разгрузить процессор. Т.е. просто растягивание времени выполнения скрипта.
Отсутствую.

Ляпис

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: BenchMark Test
« Reply #19 on: November 13, 2012, 11:43:50 PM »
Если покопаться в конфиге кмана можно найти такую опцию и существенно сократить размер скрипта.
Quote from: config.ini
; Дополнительная задержка (в милисекундах) после выполнения команды (0 - без задержки)
; (Позволяет разгрузить процессор в случае, когда сценарий не использует WAIT)
delay_between_lines = 1
cmann4.7 se win8 slimbrowser intel core2duo
текущий проект - "Зомби Ферма" VK

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: BenchMark Test
« Reply #20 on: November 14, 2012, 12:25:26 AM »
Если покопаться в конфиге кмана можно найти такую опцию и существенно сократить размер скрипта.
Quote from: config.ini
; Дополнительная задержка (в милисекундах) после выполнения команды (0 - без задержки)
; (Позволяет разгрузить процессор в случае, когда сценарий не использует WAIT)
delay_between_lines = 1

Причем тут размер скрипта??? Этот параметр управляет задержками между строк.
Установи там 1000 и каждая строка будет выполняться через секунду.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: BenchMark Test
« Reply #21 on: November 14, 2012, 12:34:41 AM »
там 1000 и каждая строка будет выполняться через секунду.
А можно ли  получить  вменяемую инструкцию для новичков,  с рекомендуемыми параметрами задержки, после тех или иных команд?
 Я лично ставлю наобум примерно так
Для режимов мыши 100-250 мс, для экранных работ 550-750 мс, для пережидания моментов   тугодумства браузера 5-10 сек.
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: BenchMark Test
« Reply #22 on: November 14, 2012, 12:58:02 AM »
там 1000 и каждая строка будет выполняться через секунду.
А можно ли  получить  вменяемую инструкцию для новичков,  с рекомендуемыми параметрами задержки, после тех или иных команд?
 Я лично ставлю наобум примерно так
Для режимов мыши 100-250 мс, для экранных работ 550-750 мс, для пережидания моментов   тугодумства браузера 5-10 сек.

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


Ляпис

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Re: BenchMark Test
« Reply #23 on: November 14, 2012, 01:10:03 AM »
Причем тут размер скрипта??? Этот параметр управляет задержками между строк.
Установи там 1000 и каждая строка будет выполняться через секунду.
Я лично ставлю наобум примерно так
Для режимов мыши 100-250 мс, для экранных работ 550-750 мс, для пережидания моментов   тугодумства браузера 5-10 сек.
Вот как раз ЦИТРИНу это и нужно. Нет необходимости лепить задержки абы были. Проц не грузится, скрипт более читаем, а 1000мс это перебор, 10-50 достаточно. Каждый должен подобрать оптимальную задержку под свою конфигурацию компа.
От тугодумства браузера - я предпочитаю дождаться события с помощью анализа экрана, благо кман под то и заточен:
Code: (clickermann) [Select]
$ww = 8388415 //хеш куска ожидаемого окна
$wwk = "380110400120;" // координаты хеша
GOSUB(waitwin)
....................
   // ОЖИДАНИЕ ОКНА
SUB(waitwin)
     $ww1 = 0
     WHILE($ww1 ! $ww)
        GETSCREEN
        $ww1 = PXLXOR(STRCUT($wwk,1,3), STRCUT($wwk,4,3), STRCUT($wwk,7,3), STRCUT($wwk,10,3), 255)
        WAITMS(300)
     END_CYC
END_SUB
cmann4.7 se win8 slimbrowser intel core2duo
текущий проект - "Зомби Ферма" VK

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: BenchMark Test
« Reply #24 on: November 14, 2012, 02:30:55 AM »

1) От тугодумства браузера - я предпочитаю дождаться события с помощью анализа экрана,
2) Нет необходимости лепить задержки абы были. Проц не грузится, скрипт более читаем, а 1000мс это перебор, 10-50 достаточно.
Спасибо )
Интересно.
Попробую. Но мои потуги анализировать экран  (я уже  писал скрипты, правда без сабов) пока ни чему не приводили.
  Т.е., если браузер т.с. "завис" , то это лечится только его  закрытием и новым вызовом.
 Поэтому отказался от процедуры анализа.
 Может я и не прав, но субъективно стабильности стало больше.
2)  Можно ли пояснить , где  и в каких командах нужны задержки по  50 мс , а где по 500 мс?
 
Code: (clickermann) [Select]
...
WAITMS(150)
KEYPRESS(67)
WAITMS(150)
KEYUP(17)
WAITMS(150)
STRWRITELN("первые.txt", FROMCLIP ())
WAITMS(150)
STRWRITELN("первые.txt",STRCONCAT("время -",$_time_h,":",$_time_m,":",$_time_s," \ ",$_date_d,":",$_date_m,":",$_date_y))
WAITMS(150)
DEFINE($follEWWW,0)
$follEWWW = $follWWW - $count
STRWRITELN("первые.txt",STRCONCAT("WWW:"," заказ-",$follWWW," факт-",$count," разница-",$follEWWW))
WAITMS(RND(100,150))
DEFINE($follEDDD,0)
....
вырезал кусочек из свежего скрипта, где натыкал задержек наобум.
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: BenchMark Test
« Reply #25 on: November 14, 2012, 03:47:35 AM »

2)  Можно ли пояснить , где  и в каких командах нужны задержки по  50 мс , а где по 500 мс?
 
Code: (clickermann) [Select]
...
WAITMS(150)
KEYPRESS(67)
WAITMS(150)
KEYUP(17)
WAITMS(150)
STRWRITELN("первые.txt", FROMCLIP ())
WAITMS(150)
STRWRITELN("первые.txt",STRCONCAT("время -",$_time_h,":",$_time_m,":",$_time_s," \ ",$_date_d,":",$_date_m,":",$_date_y))
WAITMS(150)
DEFINE($follEWWW,0)
$follEWWW = $follWWW - $count
STRWRITELN("первые.txt",STRCONCAT("WWW:"," заказ-",$follWWW," факт-",$count," разница-",$follEWWW))
WAITMS(RND(100,150))
DEFINE($follEDDD,0)
....
вырезал кусочек из свежего скрипта, где натыкал задержек наобум.

Я думаю я понял твой вопрос.

Ну задержка после нажатия клавиш явно нужна, Для некоторых тормозных игр иногда приходится задавать 200-400 мс задержки. Для системы достаточно 20-50 мс.
Задержка после STRWRITELN не нужна, (Хотя при работе с буфером обмена можно поставить 50 мс)
Вот после STRWRITELN("первые.txt",STRCONCAT точно не нужна.

Глупо ставить задержку после GETSCREEN, снимок должен быть актуальный.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: BenchMark Test
« Reply #26 on: November 14, 2012, 10:47:51 AM »
Вот после STRWRITELN("первые.txt",STRCONCAT точно не нужна.
Глупо ставить задержку после GETSCREEN, снимок должен быть актуальный.
Собственно, вопрос так и не закрыт.
 В кликермане больше 100 команд.
Code: (clickermann) [Select]
FOR
WHILE
GOTO
BREAK
ELSE
END_CYC
END_IF
IF
IF_TIME
INC
WAIT
WAITMS
CALL
AND
OR
XOR
//--- ФУНКЦИИ
PXL
PXLXOR
PXLCRC
PXLCOUNT
RND
RNDFROM
FROMCLIP
DIST
HGETTEXT
HGET
SIN
COS
SQRT
ROUND
//--- МЫШЬ
LCLICK
LDOWN
LUP
RCLICK
RDOWN
RUP
MDOWN
MUP
MCLICK
MOVE
MOVER
DBLCLICK
WHEELDOWN
WHEELUP
//--- КЛАВИАТУРА
KEYDOWN
KEYPRESS
KEYSTRING
KEYUP
IF_KEYDOWN


DEFINE
GETSCREEN
COLORMODE
HALT
IF_PIXEL_IN
IF_PICTURE_IN
LOGCLEAR
LOGSHOW
LOGWRITE
PRINT
EXECUTE
HINTPOPUP

SCREENSHOT
SOUND
TOCLIP
TRAYSAY
UNDEFINE
LOAD
SUB
GOSUB
END_SUB

READMEM
WRITEMEM

HSET
HSETTEXT

STRFILTER
STRCUT
STRCUT2
STRPOS
STRLEN
STRCONCAT
STRREPLACE
STRREADLN
STRWRITELN
STRMD5
INT
WNDFIND
WNDSIZE
WNDPOS
WNDSTATE
POSTMESSAGE
SENDMESSAGE
COLORGEN
COLORR
COLORG
COLORB
BEEP

ISKEYDOWN
INPUTBOX
HTTPGET
HTTPPOST
INIREAD
INIWRITE
 
После каких команд требуется обязательная задержка, на какой срок и должна ли она быть рандомной?
Бабочки полёт будит тихую поляну в солнечном свету...

Dr_midon

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: BenchMark Test
« Reply #27 on: November 14, 2012, 11:24:27 AM »
Давай рассуждать логически:
1. Пауза нужна для разгрузки процессора т.е. если чего-то ждем(обновления экрана / нажатия кнопки пользователем / HTTP ответа от сервера и пр.), то можно проверять не каждый цикл, а тормозиться на несколько долей или даже целых секунд.
2. Пауза нужна для обработки действий программой/игрой с которой мы работаем(у меня достаточно мощный комп и не нужно такого делать, а у другого человека послабее и ему нужны задержки, чтоб игрушка могла переварить клики)

Исходя из этого выбираем длительность паузы в зависимости от производительности компьютера, на котором скрипт будет работать и в зависимости от тормознутости игры/интернета и прочего, с чем приходится работать кликерману. Расставляем паузы в затяжных операциях: например циклах, которые превышают 100 и более повторений. Чтоб не было эффекта зависания. А также после кликов и нажатий клавиш.

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: BenchMark Test
« Reply #28 on: November 14, 2012, 11:31:38 AM »
Давай рассуждать логически:
1. Пауза нужна для разгрузки процессора... А также после кликов и нажатий клавиш.
Изначально предлагалось расширить доступ к программе, как можно более
широкому кругу лиц.  "Рассуждать логически" понятие крайне неопределенное. То что логично гуманитарию , будет бредом для технаря.
  Каким образом гуманитарию расставить паузы в кликере , если он  под процессором понимает вон тот ящик с  зеленой лампочкой под столом?
 Есть список команд.
 Какие паузы ставить до\после по списку команд, исходя из личного опыта корифеев?
 Нельзя ли в самой программе как-то учитывать время на отработку той или иной команды ( если этого  нет, разумеется) ?
Бабочки полёт будит тихую поляну в солнечном свету...

Dr_midon

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: BenchMark Test
« Reply #29 on: November 14, 2012, 12:12:39 PM »
Углубляемся:
К-ман создан для того, чтоб рутинные операции выполнялись автоматически. Это значит, что мы изначально предполагаем, сколько времени затрачивается на ту или иную операцию.

Например:
Клацаю мышкой на ссылку, жду пока загрузится страничка в браузере. Обратно кликаю на ссылку, опять жду. Рутина? Рутина! Можно это действие автоматизировать? Можно!

Практика:
1. Навожу мышкой на ссылку. Не клацаю, а смотрю координаты и записываю а редакторе кода LCLICK(x,y) или ALT+Q.
2. Затем засекаю, сколько понадобится времени на переваривание этой операции браузером. Дополняю код в редакторе скрипта строчкой WAIT(сколько секунд ждали + еще столько же на всякий случай). Все, скрип готов.

Итог:
Я не могу сказать, сколько понадобилось времени ожидания для написания второй строчки кода. И по этому не могу точно сказать, что пишем  LCLICK(x,y), а за ним обязательно ставим паузу в 2 секунды WAIT(2). И это относится ко всем участникам этого форума. Есть случаи, когда клик обрабатывается мгновенно и не приходится ожидать(например флеш игра). А есть и когда приходится ждать не одну минуту(браузерная игра с обновлением всей странички каждый клик при зависшем интернете). Как тогда быть? Написать: ставь после LCLICK(x,y) ожидание в 5 секунд будет не справедливым, хотя и в 99% будет точным.

Эпилог
Думать надо своей головой, даже, когда копи-пастом пишем скрипты. Если чего-то не получается - это тоже результат, хоть и отрицательный. Лингвисты тоже получают зарплату и тратят деньги и как следствие умеют считать. А значит и в них есть зачатки математика(технаря/программиста). Достаточно их развивать. Нельзя делить людей на гуманитариев и технарей / черное и белое / зло и добро  :P