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

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

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

> Без описания
Kuk
Отправлено: 17 Сентября, 2013 - 11:17:40
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2013  
Репутация: 0




Как оптимизировать код для более быстрого выполнения программы?

1. Глубина цвета 32 бита - уменьшать специально для кибора не хотелось бы..
2. Ведется поиск картинок максимум 50*20 пикселей, основная масса где то 8*10, кол-во картинок не более 10
3. Sleep используется там, где без нее не обойтись, и время задается впритык для выполнения задачи - уменьшить не получится
 
 Top
Kibor
Отправлено: 17 Сентября, 2013 - 15:00:47
Post Id



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


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




1) Не играет роли. Приведет не к ускорению, а к тому что изображение может не найтись.
2) Это не является большой нагрузкой и в большинстве случаев обрабатывается быстро. Все зависит от того какое именно быстродействие надо. Обработка видео в реальном режиме?
3) Вопрос не ясен. Нужен код.

Самой первой оптимизацией при поиске изображений является ограничивание области поиска. Так же если известно заранее что есть только одно изображение, то первый параметр в findimage ставить в 1. Это для того что бы как нашлось изображение функция завершалась, а не продолжала скан экрана (все равно же больше не будет такого изображения).

Вот к примеру тест скрипт, который ищет вашу аваторку по части ее изображения.
Сохранить этот рисунок на диск С в .bmp:


Открыть эту страницу во весь экран браузера. Аватор должен быть виден.

Запускаем скрипт:
CODE:
int Image_0[28][15];loadimage (#Image_0[0][0], "C:\Image_0.bmp");

int t;
double t1;
int x, y;
int ex, ey, col;
int k, k1;

getdisplay(col, ex, ey);


sleep(1000);


k=0;k1=0;
t=gettime();
a: k1=k1+findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, ex, ey, -1);
k++;
if (k<100) goto a;
t1=gettime()-t;
messagebox("Весь экран: Поиск осуществлен 100 раз. Рисунок найден "+ format(k1) +" раз за "+ format(t1/1000) +" секунд.");


sleep(1000);



k=0;k1=0;
t=gettime();
a5: k1=k1+findimage(1, #Image_0[0][0], -1, #x, #y, 0, 0, 215, ey, -1);
k++;
if (k<100) goto a5;
t1=gettime()-t;
messagebox("Часть экрана: Поиск осуществлен 100 раз. Рисунок найден "+ format(k1) +" раз за "+ format(t1/1000) +" секунд.");



Первый поиск происходит по всему экрану. На моем ноуте функция срабатывает 100 раз примерно за 5 секунд. 20 раз в секунду.
Второй поиск по части экрана. 100 раз сканируется за 1.7 секунды. 58 раз за секунду.
Кроме функции поиска еще отрабатывается дополнительный код...
Проверьте ваш результат.

Тут быстрее всего надо оптимизировать сам код скрипта... Больше без кода сказать не могу.
 
 Top
Stanislaw
Отправлено: 03 Ноября, 2014 - 20:50:01
Post Id



Пользователь
Участник


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




Заметил в диспечере задач что как сам кибор так и запускные файлы занимают память от 100 до 300 мегабайт. Система ХР и 8.1 От размера скрипта не зависит-один из больших весил 100мб, всего в десяток строк 250мб. На что тратится? Картинки маленькие,данных почти нет.
 
 Top
Kibor
Отправлено: 03 Ноября, 2014 - 21:53:29
Post Id



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


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




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


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




Powered by