1 (изменено: Foma, 2022-05-03 15:07:18)

Тема: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Привет!
Может кто-то подсказать, будет ли значительный выигрыш по времени, если четырьмя разными скриптами искать разные 60-70 мелких картинок в разных местах экрана, а не одним около 250-300? Потом конечно надо всё передать в один скрипт, но как я понимаю это не занимает значительного времени.

Пока написал один, который ищет около 40 мелких картинок и на это уходит примерно 800 мс. Если всё искать одним  получится больше двух секунд, что многовато.
Поможет ли разделение на разные скрипты успеть всё хотя бы за 1000 мс?
Заранее спасибо за помощь.

2

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Если процессор одноядерный, выигрыша не будет. Если запускать разные процессы на разных ядрах, то выигрыш будет. Вроде где-то обсуждали, как прицепить процесс к определённому ядру.

3

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Если уже написали один скрипт, оставьте 20 картинок, запустите два экземпляра скрипта и сможете оценить производительность.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

ypppu пишет:

Если процессор одноядерный, выигрыша не будет.

А такие еще существуют?

ypppu пишет:

Вроде где-то обсуждали, как прицепить процесс к определённому ядру.

По-моему просто достаточно запускать разные копии скрипта и искать совпадения машинным кодом из одного источника созданного с помощью CreateFileMapping.

5

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Процессор не одноядерный.

искать совпадения машинным кодом из одного источника созданного с помощью CreateFileMapping

Тут где-то были темы по передаче данных из одного скрипта в другой. Надеюсь там всё просто и быстро. Для моего уровня.
Правда пока эти темы не нашёл.

6

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Нет. Тема сложная.

7

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Совсем уж примитивный обмен данными реализовать не сложно. Типа главный скрипт создаёт окно GUI (не обязательное видимое) с текстовым полем (э. у. Edit), а другие скрипты вводят в него данные посредством ControlSend. Ну или на каждый скрипт-клиент отдельный Edit.

8

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

А как вы собираетесь обмениваться gdi объектами?

9

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Никак. В задании такого нет. Скорее всего автор имеет несколько картинок в виде файлов. Каждый скрипт отвечает за свой файл, и о результатах поиска сообщает главному скрипту.

10

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

То есть, вы предлагаете, чтобы каждый скрипт, каждый раз вызывал imagesearch?

11

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Я не предлагаю. Я предполагаю, что автор именно так и собирался делать.

12

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Понятно.
Foma, изучайте:
https://stackoverflow.com/questions/869 … -processes
http://forum.script-coding.com/viewtopic.php?id=16706
http://forum.script-coding.com/viewtopic.php?id=10765

13 (изменено: Foma, 2022-05-03 20:00:49)

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Картинки все разные. Наверное будет оптимумом каждым скриптом искать 30-40 штук? И передавать в главный.

Да, то, что я вижу - довольно сложно. Где-то же была тема примерно такого названия: "Как передавать данные из скрипта в скрипт?". Что-то не могу найти. Там вроде было готовое  решение через память, зная название процесса скрипта.

14

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Если 250 разных картинок искать при помощи 6-ядерного процессора, тогда да, на каждое ядро штук 40 картинок получится.

15

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Попробую так. Надо только организовать процесс, когда главный скрипт отправляет команду остальным, а потом получает от них данные.
Отправлять команды можно в скрытые окна, названия которых будут заранее известны, а вот как получать назад? Неужели и вправду выводить главным скрытый GUI с несколькими Edit, чтобы отправлять туда данные и там считывать?

16

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Если нужно отправлять текстовые данные, читайте справку.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17 (изменено: Foma, 2022-05-03 22:29:59)

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Вообще-то хочется чтобы всё было в скрытых окнах и автоматически, без "press Win+Space to".
Не понимаю что там нужно изменить для этого.

В минимальном варианте отправлять и получать надо  трёхзначные числа.

18

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Вы можете отправлять данные этим способом в любой момент, который определяется в скрипте. Конечно, нажимать горячие клавиши при этом не обязательно, InputBox тоже не потребуется. Вам нужно просто выполнить то, что происходит в примере тут

result := Send_WM_COPYDATA(StringToSend, TargetScriptTitle)

и дальше.
Сообщения в данном примере как раз скрытым окнам и отправляются, так как у любого скрипта есть такое окно. Вы можете увидеть его, если дважды кликните по иконке любого скрипте в трее, или запустите Open из трей-меню.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Про окна я знаю. Попробую разобраться. Спасибо!

20

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Для обмена сообщениями не обязательно искать скрипт по названию файла. Если родительский скрипт запускает дочерние, то свои данные он может отправить дочернему в параметре командной строки, а PID дочернего скрипта можно получить в команде Run.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Поиск множества мелких картинок. Один скрипт или несколько? Вопро

Не удалось мне разобраться с этим вопросом. (
Буду переходить к варианту передачи данных либо через .ini, либо действительно через скрытый GUI с несколькими Edit.