<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: медленная работа PixelSearch]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11502&amp;type=atom" />
	<updated>2021-06-25T01:47:48Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11502</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148592#p148592" />
			<content type="html"><![CDATA[<p>Воспользовался подсказкой из <a href="https://forum.script-coding.com/viewtopic.php?pid=136954#p136954">соседней темы</a>:<br /></p><div class="codebox"><pre><code>
#NoEnv
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#KeyHistory 0
ListLines Off
Process, Priority, , R
SetBatchLines, -1
SetWinDelay, -1
SetControlDelay, -1
</code></pre></div><p>Получил время выполнения 62 - 78 чаще всего - 94 мс. Супер! Правда, напоминаю сам себе мартышку, которую посадили набирать &quot;Войну и мир&quot;... Зато работает!<br /></p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Не вижу в вашем коде CoordMode. По умолчанию координаты отсчитываются от активного окна, а не от экрана.</p></blockquote></div><p>Ага. В этом есть смысл, но к этому вопросу я вернусь позже, когда (если) всё будет работать как надо. Снимать координаты - простая, но нудная работа.<br />...<br />Да блин! опять 1-4 секунды тот же самый кусок кода!<br />...<br />Всё упирается в PixelSearch. Один вызов этой функции, без петель и переменных, на такой же полоске, занимает 860 мс.<br />Гуглю - все жалуются на низкую скорость. И понятно, PixelSearch работает со скриншотами...<br />(как я тогда получил 78 мс?)<br />Чем его можно заменить?</p>]]></content>
			<author>
				<name><![CDATA[isxodnik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41364</uri>
			</author>
			<updated>2021-06-25T01:47:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148592#p148592</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148591#p148591" />
			<content type="html"><![CDATA[<p>В выложенном коде нет ничего, что могло бы оправдать 4100 - 4700 мс. Возможно что-то приостанавливает выполнение данного цикла, что именно, можно только гадать. Не вижу в вашем коде <a href="https://www.autohotkey.com/docs/commands/CoordMode.htm">CoordMode</a>. По умолчанию координаты отсчитываются от активного окна, а не от экрана.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-25T00:19:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148591#p148591</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148590#p148590" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>В коде не заданы координаты поиска.</p></blockquote></div><p>Там длинная портянка переменных, не хотел захламлять:<br /></p><div class="codebox"><pre><code>
e::
;объявляем переменные для PixelSearch, ищем 0x000000:

;по оси X
;первый фрейм (player)
x_Search_5_1 := 2278	;начало поиска
x_Search_5_2 := 2329	;конец поиска
HP_5 :=						;результат ( = PixelSearch - (x_Search_5_1 - 1))

;второй фрейм (party1)
x_Search_1_1 := 2337	;начало
x_Search_1_2 := 2388	;конец
HP_1 :=						;результат

;третий фрейм (party2)
x_Search_2_1 := 2395
x_Search_2_2 := 2446
HP_2 :=

;четвёртый фрейм (party3)
x_Search_3_1 := 2454
x_Search_3_2 := 2505
HP_3 :=

;пятый фрейм (party4)
x_Search_4_1 := 2512
x_Search_4_2 := 2564
HP_4 :=

;по оси Y, общее для всех
y_Search := 1329

{
Start := A_TickCount

HP_1 := HP_2 := HP_3 := HP_4 := HP_5 := &quot;&quot;	;очистка переменных

Loop, 5
	{
;ищет чёрный пиксель в пяти горизонтальных полосках размером 1*51 пиксель
	PixelSearch, x, y, x_Search_%A_Index%_1, y_Search, x_Search_%A_Index%_2, y_Search, 0x000000
;и вычисляет длину этой полоски до чёрного пикселя
	HP_%A_Index% = % x - x_Search_%A_Index%_1
	}

TimeMSC := % A_TickCount - Start

MsgBox, %HP_1% %HP_2% %HP_3% %HP_4% %HP_5%, Время выполнения этой части кода: %TimeMSC% миллисекунд.
return
}
q::reload
</code></pre></div><div class="quotebox"><cite>Foma пишет:</cite><blockquote><p>Добавил нужное в код.</p></blockquote></div><p>Спасибо! Результаты странные - от 109-125 до 4100 - 4700 мс... То есть может, но не всегда хочет?<br />На всякий случай - проц i9-10900, 128 гб оперативы.</p>]]></content>
			<author>
				<name><![CDATA[isxodnik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41364</uri>
			</author>
			<updated>2021-06-24T23:48:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148590#p148590</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148584#p148584" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>как засечь время выполнения скрипта.<br />Что тут можно сделать?</p></blockquote></div><div class="codebox"><pre><code>e::
{
Start := A_TickCount
...
TimeMSC := A_TickCount - Start
MsgBox, Время выполнения этой части кода: %TimeMSC% миллисекунд.
...
}	
q::reload</code></pre></div><p>&nbsp; Добавил нужное в код.</p>]]></content>
			<author>
				<name><![CDATA[Foma]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31521</uri>
			</author>
			<updated>2021-06-24T13:48:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148584#p148584</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148583#p148583" />
			<content type="html"><![CDATA[<p>В коде не заданы координаты поиска.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-24T13:42:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148583#p148583</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148582#p148582" />
			<content type="html"><![CDATA[<p>Долго, порядка 0,5-1 сек, выполняется следующий код:<br /></p><div class="codebox"><pre><code>
e::
{
HP_1 := HP_2 := HP_3 := HP_4 := HP_5 := &quot;&quot;	;очистка переменных

Loop, 5
	{
;ищет чёрный пиксель в пяти горизонтальных полосках размером 1*51 пиксель
	PixelSearch, x, y, x_%A_Index%_1, y_Search, x_%A_Index%_2, y_Search, 0x000000, Fast
;и вычисляет длину этой полоски до чёрного пикселя
	HP_%A_Index% = % x - x_Search_%A_Index%_1
	}

MsgBox, %HP_1% %HP_2% %HP_3% %HP_4% %HP_5%
return
}	
q::reload</code></pre></div><p>Точнее сказать не могу, потому что - и это вторая проблема - не могу нарыть, как засечь время выполнения скрипта.<br />Что тут можно сделать?</p>]]></content>
			<author>
				<name><![CDATA[isxodnik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41364</uri>
			</author>
			<updated>2021-06-24T13:21:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148582#p148582</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102725#p102725" />
			<content type="html"><![CDATA[<p>Если 900 раз запустить команду для отдельного пикселя, то ищет действительно долго.<br />А если искать один раз, но в большом регионе, то всё отрабатывает быстро. 1000x1000 пикселей прочёсывает за 3 секунды. Windows XP, AutoHotkey 1.1.23.05.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2016-04-19T08:21:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102725#p102725</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102722#p102722" />
			<content type="html"><![CDATA[<p>У меня операционка не менялась, Windows 7 Prof. Точнее, стояла та же самая, потом снёс и поставил заново. Может быть, какие-то обновления винды сыграли роль? </p><p>У меня программа искала даже не 900 точек (это я уж совсем сузил область), а на экране 1920х1080. Три года назад такой поиск отрабатывал за пару секунд, не больше (а если искомая точка находилась ближе к левому верхнему краю, то и вообще почти мгновенно). А теперь та версия скрипта прочёсывает экран так долго, что можно успеть заварить чай и провести чайную церемонию. С Fast-ом стало так же быстро, как раньше.</p>]]></content>
			<author>
				<name><![CDATA[Tsubasa]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26524</uri>
			</author>
			<updated>2016-04-19T05:29:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102722#p102722</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102657#p102657" />
			<content type="html"><![CDATA[<p>У меня старый компьютер, ещё дольше ищет. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />SetBatchLines, -1 помогло уменьшить время в полтора раза. Проверял на старой версии AutoHotkey - то же самое. А с параметром Fast почти мгновенно отрабатывает. Значит она всегда так и работала. Просто до этого мало кто искал по 900 точек за раз.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2016-04-17T07:10:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102657#p102657</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102656#p102656" />
			<content type="html"><![CDATA[<p>А вы у себя проверили? У меня тоже секунд 15 занимает, что выглядит странно. Что там так долго делать, не понятно.</p><p>Процессор явно ни при чём, ОС — Win10.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-17T06:52:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102656#p102656</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102654#p102654" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Tsubasa пишет:</cite><blockquote><p>Квадрат 30х30 она прочёсывает секунд за 15</p></blockquote></div><p> Так медленно не должно быть. А что за три года изменилось, может быть ОС? Или процессор занят чем-то другим.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2016-04-17T06:45:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102654#p102654</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102635#p102635" />
			<content type="html"><![CDATA[<p>Точно, так работает значительно быстрее. Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[Tsubasa]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26524</uri>
			</author>
			<updated>2016-04-16T15:05:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102635#p102635</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102630#p102630" />
			<content type="html"><![CDATA[<p>Можно быстрый режим использовать.<br /></p><div class="codebox"><pre><code>
PixelSearch, X, Y, 1000, 160, 1030, 190, 0x0000c6, 0, Fast
if ErrorLevel
    MsgBox, That color was not found in the specified region.
else
    MsgBox, A color within 3 shades of variation was found at X%X% Y%Y%.
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2016-04-16T14:10:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102630#p102630</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: медленная работа PixelSearch]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102629#p102629" />
			<content type="html"><![CDATA[<p>Добрый день!<br />У меня был ранее написанный скрипт (года три назад), выполняющий некую работу. Сегодня запустил, а он сильно тормозит. Оказалось, что тормоза идут при выполнении&nbsp; команды PixelSearch. Квадрат 30х30 она прочёсывает секунд за 15 (если он пустой). Раньше она работала раз в 100 быстрее. </p><div class="codebox"><pre><code>PixelSearch, X, Y, 1000, 160, 1030, 190, 0x0000c6 
if ErrorLevel
	MsgBox, That color was not found in the specified region.
else
	MsgBox, A color within 3 shades of variation was found at X%X% Y%Y%.</code></pre></div><p>AHK стоит последней версии v1.1.23.05, Windows 7 x64. </p><p>Это теперь так и должно быть, или я что-то не учёл?</p>]]></content>
			<author>
				<name><![CDATA[Tsubasa]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26524</uri>
			</author>
			<updated>2016-04-16T13:20:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102629#p102629</id>
		</entry>
</feed>
