Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Кибор переедает память
wotres2
Отправлено: 13 Декабря, 2024 - 11:59:47
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2022  
Репутация: 3




Доброго времени.

Столкнулся с проблемой, есть скрипт, приложен ниже, скрипт для отладки, чекает объекты на пуле скринов и логирует.

'''
int min_col=1;//кол-во необходимых цветов для нахождения
int r=0; // разбежность
int color[2]; // массив под цвета
int kol[2]; // кол-во пиеселей для каждлгов цвета
int x[50], y[50]; // массив под запись координат
int k;
int n=1;
int Image[1366][768]; // массив под загрузку изображения
int x_s_map=1162;
int x_f_map=1278;
int y_s_map=592;
int y_f_map=700;
int kol_obj=0;
int kol_obj1=0;
int kol_obj2=0;
int forn1;
int forn2;
int errorevent[280];
int manyevent[280];

color[0]=16757601; color[1]=0;//заполенние массива
kol[0]=10; kol[1]=5;//Тут сколько должно совпасть пикселей для каждого цвета

loop(270)
{

sleep(10);
loadimage (#Image[0][0], "C:\screenDDR\12.12.24\screen12.12.24."+format(n)+".bmp");

k=findheapcolor(20, #color[0], #kol[0], 1, min_col, #x[0], #y[0], 15, 15, 20, 20, x_s_map, y_s_map, x_f_map, y_f_map, r, r, r, r, r, r, #Image[0][0]);

if (k==1)
{
kol_obj++;
}

if (k<1)
{
kol_obj1++;
errorevent[kol_obj1]=n;
}

if (k>1)
{
kol_obj2++;
manyevent[kol_obj2]=n;
}

n++;


}

messagebox (format(kol_obj)+" найдено объектов");
messagebox (format(kol_obj1)+" не найдено объектов");
messagebox (format(kol_obj2)+" найдено множества объектов");

for (forn1=0; forn1<kol_obj1; forn1++)
{

messagebox (format(errorevent[forn1])+" скриншот с ошибкой поиска");

}

for (forn2=0; forn2<kol_obj2; forn2++)
{

messagebox (format(errorevent[forn1])+" скриншот с множеством объектов");

}
'''

Поведение кибора:

1. Первый запуск.
1.1. Потребление 55мб вырастает до 1гб.
1.2 Скрипт отрабатывает успешно.

2. Второй запуск.
2.1. Потребление 1гб вырастает до 1.6гб (предполагаю - это крит)
2.2. Взлетает диалоговое окно Image file conversion error
2.2.1 Если прокликивать, окно то необходимо прокликать то кол-во раз, сколько цикл не смог отработать.
2.2.2 При остановке скрипта кибор не падает, но при дальнейших стартах продолжает выдавать ошибку.
2.2.3 При нажатии на любое действие в шапке окна программы кибор, кибор рассыпается.

Играл с операторами new и delete, результат 0

(Отредактировано автором: 13 Декабря, 2024 - 12:00:43)

 
 Top
Kibor
Отправлено: 13 Декабря, 2024 - 12:02:39
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




loadimage вынесите вверх скрипта. Он отработать один раз должен
 
 Top
wotres2
Отправлено: 13 Декабря, 2024 - 12:11:27
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2022  
Репутация: 3




 Kibor пишет:
loadimage вынесите вверх скрипта. Он отработать один раз должен


Это разрушит логику скрипта, в цикле меняется имя подгружаемой картинки, чтобы пройтись по 270 разным изображениям
я почему то подумал, что данная функция обращаясь к одному массиву должна использовать и перезаписывать одну и туже область выделенной памяти, но как итог он вгружает всё.

Подскажите, как правильно реализовать этот функционал, чтобы не возникло проблем на парсинге 1000 изображений?
 
 Top
Zireael
Отправлено: 13 Декабря, 2024 - 12:26:05
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4597
Дата рег-ции: Нояб. 2017  
Репутация: 595




 Цитата:
loadimage вынесите вверх скрипта. Он отработать один раз должен

Сомневаюсь что в этом проблема. Это же не база символов, которая постоянно дополняется.
 Цитата:
int Image[1366][768]; // массив под загрузку изображения

Все изображения меньшего размера? Может какое-то больше и не помещается в массив.
Добавьте после loadimage:
CODE:
messagebox(n);

После загрузки какого изображения появляется ошибка?
 
 Top
wotres2
Отправлено: 13 Декабря, 2024 - 12:31:40
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2022  
Репутация: 3




 Zireael пишет:
 Цитата:
loadimage вынесите вверх скрипта. Он отработать один раз должен

Сомневаюсь что в этом проблема. Это же не база символов, которая постоянно дополняется.
 Цитата:
int Image[1366][768]; // массив под загрузку изображения

Все изображения меньшего размера? Может какое-то больше и не помещается в массив.
Добавьте после loadimage:
CODE:
messagebox(n);

После загрузки какого изображения появляется ошибка?


Уточню: наблюдаю это со вчера, собственно когда скрипт и собрал

Повторюсь:

1. При первом запуске скрипта после запуска программы ошибок НЕТ.
2. При повторном запуске скрипта в той же сессии программы ошибка не на конкретном изображении, а при условии, что процесс Кибор превысил потребление памяти 1500 мб.
3. Т.е. при третьем запуске скрипта, Потребление памяти не меняется и сразу появляется ошибка "Image file conversion error"

После перезапуска программы - всё заново по пунктам)

(Отредактировано автором: 13 Декабря, 2024 - 12:35:39)

 
 Top
Zireael
Отправлено: 13 Декабря, 2024 - 12:44:28
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4597
Дата рег-ции: Нояб. 2017  
Репутация: 595




Описывать одно и тоже несколько раз смысла нет.
Потребление памяти до 1.5 гб, такого не должно быть.
Я написал с чего начать поиск проблемы.
Также можно убрать из скрипта часть кода и посмотреть в какой момент пропадёт ошибка.
 
 Top
wotres2
Отправлено: 13 Декабря, 2024 - 12:59:37
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 47
Дата рег-ции: Февр. 2022  
Репутация: 3




 Zireael пишет:
Описывать одно и тоже несколько раз смысла нет.
Потребление памяти до 1.5 гб, такого не должно быть.
Я написал с чего начать поиск проблемы.
Также можно убрать из скрипта часть кода и посмотреть в какой момент пропадёт ошибка.


Доубирал код до вида:

int n=1;
int Image[1367][769]; // массив под загрузку изображения

loadimage (#Image[0][0], "C:\screenDDR\12.12.24\screen12.12.24."+format(n)+".bmp"Подмигивание;


Итог - то же поведение, только малыми шагами, при каждом запуске кипод догружает в себя по 4 мб (и не отпускает) и так растет в потреблении при каждом запуске, не хочу 500 раз запускать скрипт чтобы довести до критической отметки в потреблении памяти.

Думаю можно успокоиться и смириться с фатом такого функционала)
 
 Top
Zireael
Отправлено: 13 Декабря, 2024 - 13:10:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4597
Дата рег-ции: Нояб. 2017  
Репутация: 595




Тогда только ждать исправления бага.
 
 Top
Kibor
Отправлено: 13 Декабря, 2024 - 15:51:17
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Исправил.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by