Author Topic: Очистка оперативной памяти.  (Read 3046 times)

0 Members and 1 Guest are viewing this topic.

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Очистка оперативной памяти.
« on: November 20, 2015, 08:58:13 PM »
Здравствуйте. На сколько я понимаю,при использовании функции if_picture_in программа сохраняет скриншоты в оперативной памяти. В итоге при продолжительной работе оперативка заканчивается и приходится перезапускать кликер. Можно как-то сделать, чтобы память автоматически очищалась во время работы кликера?

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Очистка оперативной памяти.
« Reply #1 on: November 20, 2015, 11:26:07 PM »
Ну значит что-то другое в нем грузит оперативку. Факт в том, что, чем дольше кликер работает - тем больше оперативки он съедает. Перед запуском программы используется всего 4% оперативы, за ночь работы он съедает до 70% памяти , а если не перезапустить, то будет работать, пока память не закончится совсем и все не начнет виснуть. Хочется сделать так, чтобы не пpиходилось его перезапускать для стабильной работы.
« Last Edit: November 20, 2015, 11:44:18 PM by justitdo »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Очистка оперативной памяти.
« Reply #2 on: November 21, 2015, 08:12:39 AM »
Ну и где твой скрипт? Пока только обнаружились проблемы с функцией HSET, её многократный вызов сильно подъедает память.

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Очистка оперативной памяти.
« Reply #3 on: November 21, 2015, 02:48:28 PM »
Code: (clickermann) [Select]
SUB(log,$name,$par)
   IF($par = 1)
      $n = INT(INIREAD("Log.ini", "НЕТ", $name))
      INC($n,1)
      INIWRITE("Log.ini", "НЕТ", $n, $name)
   ELSE
      $n = INT(INIREAD("Log.ini", "ДА", $name))
      INC($n,1)
      INIWRITE("Log.ini", "ДА", $n, $name)
   END_IF
END_SUB
SUB(paste)
MCLICK(826,327)  // 16185078
MCLICK(629,382)  // 15724527
MCLICK(331,430)  // 10334112
MCLICK(727,489)  // 1250067
MCLICK(131,544)  // 7236461
MCLICK(231,593)  // 7701652
MCLICK(330,651)  // 8957168
MCLICK(33,699)  // 15921906
MCLICK(32,753)  // 1062245
MCLICK(928,805)  // 13092807
KEYPRESS(#END)
WAITMS(300)
END_SUB
IF($var = 0)
LCLICK(86,81)
INC($var,1)
ELSE
LCLICK(186,82)  // 16119285
INC($var,-1)
END_IF
WAIT(8)
GETSCREEN
IF_PICTURE_IN (40,206, 78, 221, "x.bmp")
HALT
END_IF
paste()
GETSCREEN
IF_PICTURE_IN (326,765, 343, 778, "2.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(5)
paste()
GETSCREEN
IF_PICTURE_IN (344,764, 361, 778, "3.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(5)
paste()
GETSCREEN
IF_PICTURE_IN (362,764, 377, 777, "4.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(5)
paste()
GETSCREEN
IF_PICTURE_IN (379,766, 393, 777, "5.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(5)
paste()
GETSCREEN
IF_PICTURE_IN (397,766, 411, 777, "6.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(5)
paste()
GETSCREEN
IF_PICTURE_IN (413,766, 427, 777, "7.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(4)
paste()
GETSCREEN
IF_PICTURE_IN (429,766, 442, 777, "8.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(4)
paste()
GETSCREEN
IF_PICTURE_IN (447,766, 460, 777, "9.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(4)
paste()
GETSCREEN
IF_PICTURE_IN (465,766, 481, 777, "10.bmp")
LCLICK($_return1+2, $_return2)
END_IF
WAIT(4)
paste()
WAIT(1)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#F4)
WAITMS (50)
KEYUP (#F4)
KEYUP (#CTRL)
WAIT(1)
GETSCREEN
WHILE(PXL (314,212) ! 13726771)
      WAITMS (500)
      GETSCREEN
GETSCREEN
IF_PICTURE_IN (340,315, 550, 370, "11.bmp")
dbLCLICK($_return1+20, $_return2+4)
WAITMS(50)
KEYDOWN (#CTRL) // Ctrl+C
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
$strclip = FROMCLIP()
WAITMS(50)
$comp = TFREAD("9999.txt", 1)
WAITMS(50)
$action = STRPOS($comp, $strclip)
IF($action > 0)
log("НЕТ",1)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#F4)
WAITMS (50)
KEYUP (#F4)
KEYUP (#CTRL)
WAITMS(500)
ELSE
log("ДА",0)
TFDELETE ("9999.txt", 1)
WAITMS(50)
TFWRITE("9999.txt", STRCONCAT($comp,$strclip," "))
WAITMS (150)
GETSCREEN
IF_PICTURE_IN (296,324, 309, 334, "9999.bmp")
LCLICK($_return1, $_return2)
WAITMS(RND(1305,2070))
LCLICK(561,140)  // 16777215
WAITMS(50)
INC($num,1)
 
IF($num > TFCOUNT ("511.txt"))
   $num = 1
END_IF
 
TOCLIP (TFREAD ("511.txt", $num))
WAITMS(RND(130,770))
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(RND(305,806))
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#ENTER)
WAITMS (50)
KEYUP (#ENTER)
KEYUP (#CTRL)
WAITMS(RND(2482,4602))
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#F4)
WAITMS (50)
KEYUP (#F4)
KEYUP (#CTRL)
WAITMS(RND(481,2053)))
LCLICK(1187,128)  // 16777215
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#F4)
WAITMS (50)
KEYUP (#F4)
KEYUP (#CTRL)
WAITMS(RND(1703,3078))
END_IF
END_IF
ELSE
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#F4)
WAITMS (50)
KEYUP (#F4)
KEYUP (#CTRL)
END_IF
WAITMS(RND(1045,1582))
END_CYC
EXECUTE("1.bat")
WAIT(600)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Очистка оперативной памяти.
« Reply #4 on: November 21, 2015, 03:10:18 PM »
Ты уверен что у тебя последняя версия кликера 4.11.003?

170 строка, лишняя скобка
Code: (clickermann) [Select]
WAITMS(RND(481,2053)))
102 строка, странность в цикле
Code: (clickermann) [Select]
WHILE(PXL (314,212) ! 13726771)ниже идут две  GETSCREEN а END_CYC находится на 191 строке. Надо бы GETSCREEN написать в конце цикла чтоб обновить снимок.

Картинки вряд ли раздувают память.

justitdo

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Очистка оперативной памяти.
« Reply #5 on: November 21, 2015, 09:09:38 PM »
Версия кликера та, которая доступна на сайте v4.11 (build 000). Убрал лишнюю скобку и перенес getscreen в конец цикла, оперативка все равно забивается.