<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Lua и dll на C]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Lua и dll на C форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 22 May 2026 19:22:15 +0300</pubDate>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34950/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_NDJ5IUhV" href="/user/3905/" bx-tooltip-user-id="3905">Let_it_go</a> написал:<br />Написал функцию так, чтобы цикл крутился внутри dll:<br /> 
====code====
<pre>&nbsp;&nbsp;static int forLua_AddCircle(lua_State&nbsp;&nbsp;* L) {
&nbsp;&nbsp; double d1&nbsp;&nbsp;=&nbsp;&nbsp;luaL_checknumber(L,&nbsp;&nbsp;1 ); //с чего начинать цикл
&nbsp;&nbsp; double d2&nbsp;&nbsp;=&nbsp;&nbsp;luaL_checknumber(L,&nbsp;&nbsp;2 ); //количество итераций
&nbsp;&nbsp; double r;
&nbsp;&nbsp; double i;
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;&nbsp;(i&nbsp;&nbsp;=&nbsp;&nbsp;d1; i&nbsp;&nbsp;&#60;&nbsp;&nbsp;=&nbsp;&nbsp;d2; i +&nbsp;&nbsp;+ )
&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;&nbsp;=&nbsp;&nbsp;i&nbsp;&nbsp;+&nbsp;&nbsp;i;
&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;return ( 1 );
}&nbsp;&nbsp;</pre>
=============
 <br /> 
====code====
<pre>&nbsp;&nbsp;package.cpath&nbsp;&nbsp;=&nbsp;&nbsp; "C:&#92;&#92;runfast.dll" 
 require ( "runfast" )
iterations =&nbsp;&nbsp;100000000 
 function&nbsp;&nbsp; main ()
&nbsp;&nbsp; start =&nbsp;&nbsp;os.clock ()
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;&nbsp;i =&nbsp;&nbsp;1 ,iterations&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;&nbsp;=&nbsp;&nbsp; runfast.AddTwoNumbers (i, i)
&nbsp;&nbsp;&nbsp;&nbsp;end 
&nbsp;&nbsp; finish =&nbsp;&nbsp;os.clock () - start
&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;&nbsp;( "C dll:"&nbsp;&nbsp;.. tostring(finish),&nbsp;&nbsp;1 )
&nbsp;&nbsp; start =&nbsp;&nbsp;os.clock ()
&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;&nbsp;i =&nbsp;&nbsp;1 ,iterations&nbsp;&nbsp;do 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;&nbsp;=&nbsp;&nbsp;i + i
&nbsp;&nbsp;&nbsp;&nbsp;end 
&nbsp;&nbsp; finish =&nbsp;&nbsp;os.clock () - start
&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;&nbsp;( "Lua:"&nbsp;&nbsp;.. tostring(finish),&nbsp;&nbsp;1 )

&nbsp;&nbsp; start =&nbsp;&nbsp;os.clock ()
&nbsp;&nbsp; r&nbsp;&nbsp;=&nbsp;&nbsp; runfast.AddCircle ( 1 ,iterations)
&nbsp;&nbsp; finish =&nbsp;&nbsp;os.clock () - start
&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;&nbsp;( "C dll circle:"&nbsp;&nbsp;.. tostring(finish),&nbsp;&nbsp;1 )&nbsp;&nbsp; 
 end&nbsp;&nbsp; </pre>
=============
 Результат:<br /><br /> <br />dll с циклом всех победила.<br />=============<br />разница в том что в lua данные в виде структур <br />если хотите оптимизировать луа скрипты, то следите чтобы типы не смешивались.<br />-------------------<br />если хотите ускорить вычисления то сделайте столько протоков сколько у вас ядер ,а ядер поставьте по числу инструментов<br />--------------------<br />если хотите &nbsp;ускорить торговлю на бирже, &nbsp;т е сделать HFT робот, то откажитесь от квика и переходите на прямое подключение к бирже.<br />-----------------------<br />Вы не там ищите ускорение, <br />так как тормоз в каналах связи, <br />в очередях у сервера брокера<br /> и задержках рассылки биржевой информации сервером брокера<br /> &nbsp; <br />
			<i>22.11.2018 17:04:59, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34950/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34950/topic3896/</guid>
			<pubDate>Thu, 22 Nov 2018 17:04:59 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34949/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_k7L0LSx7" href="/user/12727/" bx-tooltip-user-id="12727">Лже-Дмитрий</a> написал:<br />Подскажите, пожалуйста, какие накладываются ограничения в QLUA по сравнению с обычным LUA 5.1?<br />Имею в виду - кол-во local переменных, кол-во и размер пользовательских таблиц, кол-во модулей, размер модулей, и т.д.<br /><br />Поясню, в чём проблема.<br />кусок кода, вызываемого по нажатию кнопки из моей .dll:<br /> ... <br /> if (code_id == 'process_get_order_list') <br /> then <br /> &nbsp; -- local test_tbl_ = {} <br /> &nbsp; local str_tbl_ = {} <br /> &nbsp; str_tbl_&#91;'000'&#93; = '111' <br /> &nbsp; str_tbl_&#91;'111'&#93; = '000' <br /> &nbsp; return 'ok',str_tbl_ <br /> end <br /><br />Код стабилен. Если раскомментировать строку &nbsp;'local test_tbl_ = {}' , QUIK рушится с exception'ом, либо сразу после вызова, либо при попытке завершения работы скрипта. Понятно, что сам по себе такой код<br />безвреден и крешиться не может, но программа разрослась, состоит уже из 8 модулей скучей функций и таблиц.<br /><br />Отсюда и вопрос: каковы ограничения по сравнению с обычным LUA 5.1? Дело ещё в том, что на мной написанном имитаторе (Borland C++ 6.0 с/без Code Guard, LUA 5.1) тот же самый код стабилен.<br />=============<br />Ваш вопрос не корректен.<br />QLUA - это библиотека,в которой функции для доступа к хранилищу данных на терминале и посылке приему сообщений от сервера брокера.<br />для того чтобы функции этой библиотеки могли работать &nbsp; в квик внедрена VM LUA 5.1 &nbsp; <br />
			<i>22.11.2018 16:56:32, Николай  Камынин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34949/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34949/topic3896/</guid>
			<pubDate>Thu, 22 Nov 2018 16:56:32 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34925/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Не там ищете.<br /><br />склрее всего вы разрушаете целостность данных во внешней dll. В первую очередь обратите внимание на правильность обмена данными между потоками. <br />
			<i>22.11.2018 10:26:57, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34925/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34925/topic3896/</guid>
			<pubDate>Thu, 22 Nov 2018 10:26:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34924/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Подскажите, пожалуйста, какие накладываются ограничения в QLUA по сравнению с обычным LUA 5.1?<br />Имею в виду - кол-во local переменных, кол-во и размер пользовательских таблиц, кол-во модулей, размер модулей, и т.д.<br /><br />Поясню, в чём проблема.<br />кусок кода, вызываемого по нажатию кнопки из моей .dll:<br /><span class="bx-font" style="font-family:Courier New">...</span><br /><span class="bx-font" style="font-family:Courier New">if (code_id == 'process_get_order_list')</span><br /><span class="bx-font" style="font-family:Courier New">then</span><br /><span class="bx-font" style="font-family:Courier New"> &nbsp;-- local test_tbl_ = {}</span><br /><span class="bx-font" style="font-family:Courier New"> &nbsp;local str_tbl_ = {}</span><br /><span class="bx-font" style="font-family:Courier New"> &nbsp;str_tbl_&#91;'000'&#93; = '111'</span><br /><span class="bx-font" style="font-family:Courier New"> &nbsp;str_tbl_&#91;'111'&#93; = '000'</span><br /><span class="bx-font" style="font-family:Courier New"> &nbsp;return 'ok',str_tbl_</span><br /><span class="bx-font" style="font-family:Courier New">end</span><br /><br />Код стабилен. Если раскомментировать строку <span class="bx-font" style="font-family:Courier New">'local test_tbl_ = {}'</span>, QUIK рушится с exception'ом, либо сразу после вызова, либо при попытке завершения работы скрипта. Понятно, что сам по себе такой код<br />безвреден и крешиться не может, но программа разрослась, состоит уже из 8 модулей скучей функций и таблиц.<br /><br />Отсюда и вопрос: каковы ограничения по сравнению с обычным LUA 5.1? Дело ещё в том, что на мной написанном имитаторе (Borland C++ 6.0 с/без Code Guard, LUA 5.1) тот же самый код стабилен. <br />
			<i>22.11.2018 10:16:46, Лже-Дмитрий.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34924/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34924/topic3896/</guid>
			<pubDate>Thu, 22 Nov 2018 10:16:46 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34123/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			You actually revealed it fantastically! <br />erectile implants video <br /><noindex><a href="http://erectiledysfunctionpillsonx.com/" target="_blank" rel="nofollow">cheapest ed drugs</a></noindex> <br />erectile transplant <br /><noindex><a href="http://erectiledysfunctionpillsonx.com/" target="_blank" rel="nofollow">ed drugs list</a></noindex> <br />
			<i>30.09.2018 14:13:17, JosephEvelm.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34123/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34123/topic3896/</guid>
			<pubDate>Sun, 30 Sep 2018 14:13:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34122/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_1IGYuddE" href="/user/12444/" bx-tooltip-user-id="12444">новичок</a> написал:<br />позвольте Вам напомнить, что суть форума - обмен информацией. полезность и результативность сего процесса исключительно персонифицированы.<br />=============<br />Никак не возражаю, наоборот вполне согласен. И позвольте в ответ отметить что я вполне конструктивно подкинул ссылку на русский вариант текста который многим может быть удобнее. <br /><br /><br />И далее не вижу по каким причинам я не могу высказать свое отношение к материалу. Возможно формулировка резковата, ну что делать, я считаю материал откровенно слабым. Могу это долго и нудно аргументировать. Пример с которого начинается статья по сути требует написания нескольких строк в конфиге любого формата. А не притягивания в проект сценарного движка. И так далее.<br /><br />Все это исключительно мое личное мнение которое не отражает ничьей официальной позиции ))) <br />
			<i>30.09.2018 12:53:25, BlackBoar.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34122/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34122/topic3896/</guid>
			<pubDate>Sun, 30 Sep 2018 12:53:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34121/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_qwR679XL" href="/user/12453/" bx-tooltip-user-id="12453">BlackBoar</a> написал:<br /> <br />====quote====<br /><noindex><a href="/user/12444/" target="_blank" rel="nofollow">новичок</a></noindex> написал:<br /> <noindex><a href="https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/" target="_blank" rel="nofollow">https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/</a></noindex> <br />=============<br /> &nbsp;<noindex><a href="https://habr.com/post/197300/" target="_blank" rel="nofollow">https://habr.com/post/197300/</a></noindex> <br />То же самое по-русски. Насколько я понимаю авторский перевод. <br /><br />Для себя ничего особо полезного не увидел, очередное пособие как делать обертки, таких в инете на любой вкус. К ускорению взаимодействия с луа-движком этот путь не ведет.<br />=============<br />позвольте Вам напомнить, что суть форума - обмен информацией. полезность и результативность сего процесса исключительно персонифицированы. <br />
			<i>30.09.2018 10:42:15, новичок.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34121/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34121/topic3896/</guid>
			<pubDate>Sun, 30 Sep 2018 10:42:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34118/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_4kviptmx" href="/user/12444/" bx-tooltip-user-id="12444">новичок</a> написал:<br /><noindex><a href="https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/" target="_blank" rel="nofollow">https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/</a></noindex><br />=============<br /><noindex><a href="https://habr.com/post/197300/" target="_blank" rel="nofollow">https://habr.com/post/197300/</a></noindex><br />То же самое по-русски. Насколько я понимаю авторский перевод. <br /><br />Для себя ничего особо полезного не увидел, очередное пособие как делать обертки, таких в инете на любой вкус. К ускорению взаимодействия с луа-движком этот путь не ведет. <br />
			<i>30.09.2018 00:28:18, BlackBoar.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34118/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34118/topic3896/</guid>
			<pubDate>Sun, 30 Sep 2018 00:28:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message34117/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			++<br /><noindex><a href="https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/" target="_blank" rel="nofollow">https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/</a></noindex> <br />
			<i>29.09.2018 22:19:30, новичок.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message34117/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message34117/topic3896/</guid>
			<pubDate>Sat, 29 Sep 2018 22:19:30 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32997/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Нет ничего такого, чего нельзя перенести в main поток. Значит вы логику нарушили<br />никаких тяжелых вычислений в колбеках. Просто аксиомой это установите и ведите разработку с этим учетом. <br /><br />Аксиомы: Тяжелые вычисления в коллбэке = смерть квика <br />
			<i>29.08.2018 23:16:18, Павел Валин.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32997/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32997/topic3896/</guid>
			<pubDate>Wed, 29 Aug 2018 23:16:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32802/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_sjC4LVna" href="/user/7362/" bx-tooltip-user-id="7362">Enfernuz</a>, <br />уже уткнулся. Всё это происходит, потому что мои колбеки OnQuote захлёбываются.<br />Я принимаю 55 инструментов, и скрипт на луа не справляется.<br />В каждом колбеке есть логика и математика, которую нельзя переместить в main. <br />поэтому нужна скорость <br />
			<i>21.08.2018 12:22:38, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32802/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32802/topic3896/</guid>
			<pubDate>Tue, 21 Aug 2018 12:22:38 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32798/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я думаю, Вам об этом стоит задуматься лишь тогда, когда (если) Вы упрётесь в какой-нибудь боттлнек при реализации своих алгоритмов на Lua в QUIK.<br />Ну, или если просто владеете другим языком лучше , чем Lua :) <br />
			<i>21.08.2018 10:47:07, Enfernuz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32798/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32798/topic3896/</guid>
			<pubDate>Tue, 21 Aug 2018 10:47:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32791/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_zv3F1K1q" href="/user/7362/" bx-tooltip-user-id="7362">Enfernuz</a>, <br />то есть мне для достижения максимальной скорости нужно в dll запихать всё, что сейчас находится в Луа-скрипте. Это позволит обратиться к dll единожды при вызове библиотеки. Вся логика робота будет в dll.<br />А если переносить в dll только часть функций, то Луа по скорости победит C++, потому что долгое взаимодействие Луа с dll... <br />
			<i>20.08.2018 23:31:51, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32791/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32791/topic3896/</guid>
			<pubDate>Mon, 20 Aug 2018 23:31:51 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32790/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Я, конечно, не знаю, насколько крут LuaJIT, но если крут, то он r из ваш цикла<br /><br /><br />
====code====
<pre>for i = 1, iterations do&nbsp;&nbsp;&nbsp;&nbsp; r = i + iend</pre>
=============
<br />вычислит на этапе JIT-компиляции, а если ещё круче -- отбросит как dead code.<br /><br /><br />Но, увы, в QUIK не LuaJIT, так что спекулировать об этом здесь нет смысла.<br /><br /><br />В первом случае, да -- скорее всего, накладные расходы на вызов нативной функции в цикле перевесили расходы на выполнение цикла в интерпретаторе. <br />
			<i>20.08.2018 21:38:06, Enfernuz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32790/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32790/topic3896/</guid>
			<pubDate>Mon, 20 Aug 2018 21:38:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32777/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Написал функцию так, чтобы цикл крутился внутри dll:<br />
====code====
<pre>static int forLua_AddCircle(lua_State *L) {
&nbsp;&nbsp;&nbsp;double d1 = luaL_checknumber(L, 1); //с чего начинать цикл
&nbsp;&nbsp;&nbsp;double d2 = luaL_checknumber(L, 2); //количество итераций
&nbsp;&nbsp;&nbsp;double r;
&nbsp;&nbsp;&nbsp;double i;
&nbsp;&nbsp;&nbsp;for (i = d1; i &#60;= d2; i++)
&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r = i + i;
&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;return(1);
}</pre>
=============
<br />
====code====
<pre>package.cpath = "C:&#92;&#92;runfast.dll"
require("runfast")
iterations=100000000
function main()
&nbsp;&nbsp;&nbsp;start=os.clock()
&nbsp;&nbsp;&nbsp;for i=1,iterations do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r = runfast.AddTwoNumbers(i, i)
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;finish=os.clock()-start
&nbsp;&nbsp;&nbsp;message ("C dll:"..tostring(finish), 1)
&nbsp;&nbsp;&nbsp;start=os.clock()
&nbsp;&nbsp;&nbsp;for i=1,iterations do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r = i+i
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;finish=os.clock()-start
&nbsp;&nbsp;&nbsp;message ("Lua:"..tostring(finish), 1)

&nbsp;&nbsp;&nbsp;start=os.clock()
&nbsp;&nbsp;&nbsp;r = runfast.AddCircle(1,iterations)
&nbsp;&nbsp;&nbsp;finish=os.clock()-start
&nbsp;&nbsp;&nbsp;message ("C dll circle:"..tostring(finish), 1)&nbsp;&nbsp;&nbsp;
end</pre>
=============
Результат:<br /><br /><img src="http://dl4.joxi.net/drive/2018/08/19/0011/1313/742689/89/2a2548ba31.png" alt="Пользователь добавил изображение" border="0" /><br />dll с циклом всех победила. <br />
			<i>19.08.2018 01:46:12, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32777/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32777/topic3896/</guid>
			<pubDate>Sun, 19 Aug 2018 01:46:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Lua и dll на C</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message32775/topic3896/">Lua и dll на C</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Написал dll, в которой одна функция: сложение двух чисел. <br />Вот она внутри проекта C++ (пример взят с сайта quik2dde.ru)<br />
====code====
<pre>static int forLua_AddTwoNumbers(lua_State *L) {
&nbsp;&nbsp;&nbsp;// получаем первый и второй параметры вызова функции из стека с проверкой каждого на число
&nbsp;&nbsp;&nbsp;double d1 = luaL_checknumber(L, 1);
&nbsp;&nbsp;&nbsp;double d2 = luaL_checknumber(L, 2);
&nbsp;&nbsp;&nbsp;// помещаем в стек результат сложения
&nbsp;&nbsp;&nbsp;lua_pushnumber(L, d1 + d2);
&nbsp;&nbsp;&nbsp;return(1);&nbsp;&nbsp;// эта функция возвращает одно значение
}</pre>
=============
Теперь тестирую эту функцию в Луа. Сравниваю скорость:<br />1) как быстро складывает dll<br />2) как быстро складывает Lua<br />
====code====
<pre>package.cpath = "C:&#92;&#92;runfast.dll"
require("runfast")
iterations=10000000
function main()
&nbsp;&nbsp;&nbsp;start=os.clock()
&nbsp;&nbsp;&nbsp;for i=1,iterations do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r = runfast.AddTwoNumbers(i, i)
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;finish=os.clock()-start
&nbsp;&nbsp;&nbsp;message ("C dll:"..tostring(finish), 1)
&nbsp;&nbsp;&nbsp;start=os.clock()
&nbsp;&nbsp;&nbsp;for i=1,iterations do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r = i+i
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;finish=os.clock()-start
&nbsp;&nbsp;&nbsp;message ("Lua:"..tostring(finish), 1)
end
</pre>
=============
результат:<br /><img src="http://dl3.joxi.net/drive/2018/08/19/0011/1313/742689/89/1433230e06.png" alt="Пользователь добавил изображение" border="0" /><br />Луа быстрее в 3,6 раза.<br />Почему?<br />Из-за всех этих телодвижений со стеком?<br />Но как тогда извлекать преимущество от скорости Си++?<br />Мне надо переместить в dll из Луа кучу трудоёмких функций, чтобы быстро считалось. <br />
			<i>19.08.2018 00:06:37, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message32775/topic3896/</link>
			<guid>http://forum.quik.ru/messages/forum10/message32775/topic3896/</guid>
			<pubDate>Sun, 19 Aug 2018 00:06:37 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
