<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK : Оптимизация и ускорение работы скрипта]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15101&amp;type=atom" />
	<updated>2021-12-28T16:55:08Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=15101</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK : Оптимизация и ускорение работы скрипта]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=151431#p151431" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong><br />Для сценариев Autohotkey (.ahk) значение по умулчанию SetBatchLines, 20ms (за исключением версий до v1.0.16, которые использовали значение 10 строк).<br />Значение в миллисекундах рекомендуется для скриптов, в которых имеет значение высокая скорость выполнения.<br />Например, на большенстве систем значение 10ms предотвращает нагрузку на процессор выше 50%, что позволяет выполнять скрипт быстро, сохраняя быстродействие других программ (например игр, программ видео захвата и т.д.).</p>]]></content>
			<author>
				<name><![CDATA[nugmaneg]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=42247</uri>
			</author>
			<updated>2021-12-28T16:55:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=151431#p151431</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK : Оптимизация и ускорение работы скрипта]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=136981#p136981" />
			<content type="html"><![CDATA[<p><strong>Dozilius</strong>, выложенный вами код исполняется мгновенно, и вы можете проверить самостоятельно если подумаете. Время занимает код, который вы не выложили. Конкретный участок находится тривиально: записывается время до и время после, для точности можно усреднить результат за сотню итераций.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2019-12-23T10:53:31Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=136981#p136981</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK : Оптимизация и ускорение работы скрипта]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=136956#p136956" />
			<content type="html"><![CDATA[<p><strong>ypppu</strong><br />Вряд-ли поможет, всё таки там не нажатия клавиш конкретно как в Send и т.д, а запись в память процесса напрямую, мол &quot;Клавиша нажата&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Dozilius]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40446</uri>
			</author>
			<updated>2019-12-22T15:59:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=136956#p136956</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK : Оптимизация и ускорение работы скрипта]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=136955#p136955" />
			<content type="html"><![CDATA[<p><em>SetKeyDelay</em> вроде ещё можно.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2019-12-22T15:39:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=136955#p136955</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK : Оптимизация и ускорение работы скрипта]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=136954#p136954" />
			<content type="html"><![CDATA[<p>Приветствую. У меня есть скрипт, который выполняет нажатия клавиш через функции. Вот кусок скрипта:<br /></p><div class="codebox"><pre><code>$Numpad1::
Dash()
return

Dash()
{
	Global Side
		If (Side = 0){
			WriteMemory(32768, 0x6A34ED4C)
			WriteMemory(0, 0x6A34ED4C)
			WriteMemory(32768, 0x6A34ED4C)
			return WriteMemory(0, 0x6A34ED4C)
		}else{
			WriteMemory(32768, 0x6A34ED4A)
			WriteMemory(0, 0x6A34ED4A)
			WriteMemory(32768, 0x6A34ED4A)
			return WriteMemory(0, 0x6A34ED4A)
	}
}
</code></pre></div><p>Уже были выполнены некоторые действия по оптимизации скрипта:<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>Но как показывает быстродействие скрипта - этого мало.<br />Даже если вызвать нажатие клавишей подряд - они будут нажиматься с задержкой в ~20ms.<br />Хочу узнать, как можно ускорить работу скрипта, так-как при его выполнении мне нужна максимальная скорость.<br />Хоть я и вообще почти не разбираюсь в AHK, есть подозрения что это из-за функций, которые постоянно вызываются.<br />Но проблема в том, что они нужны для удобства, потому-что писать сразу &quot;WriteMemory(Value, Address)&quot; для большого кода - проблемно. Одна ошибка в нажатии где-то в середине - ищи нужную строку с клавишей, среди 80 других.<br />Заранее спасибо!<br />P.s - Использую запись в память для нажатий клавиш, что-бы обойти защиту игры, которая не даёт нажимать быстрее ~30-35ms.</p>]]></content>
			<author>
				<name><![CDATA[Dozilius]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40446</uri>
			</author>
			<updated>2019-12-22T14:51:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=136954#p136954</id>
		</entry>
</feed>
