<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: SearchItems: утечки памяти]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме SearchItems: утечки памяти форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 03:24:41 +0300</pubDate>
		<item>
			<title>SearchItems: утечки памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message28690/topic3097/">SearchItems: утечки памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_v3hzKNtw" href="/user/4021/" bx-tooltip-user-id="4021">Сергей</a>, Добрый день, <br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Описанная в данном инциденте ошибка была исправлена в версии &nbsp; &nbsp; &nbsp; 7.16.1 терминала QUIK. <br /> &nbsp; &nbsp; &nbsp; Рекомендуем вам обновить версию программы.<br /> &nbsp; &nbsp; &nbsp; <br /> &nbsp; &nbsp; &nbsp; Приносим извинения за причиненные неудобства. <br />
			<i>22.01.2018 14:40:45, Zoya Skvorcova.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message28690/topic3097/</link>
			<guid>http://forum.quik.ru/messages/forum10/message28690/topic3097/</guid>
			<pubDate>Mon, 22 Jan 2018 14:40:45 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SearchItems: утечки памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message27017/topic3097/">SearchItems: утечки памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Добрый день,<br /><br />Ошибка будет исправлена в одной из следующих версий программы <br />
			<i>03.10.2017 05:49:11, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message27017/topic3097/</link>
			<guid>http://forum.quik.ru/messages/forum10/message27017/topic3097/</guid>
			<pubDate>Tue, 03 Oct 2017 05:49:11 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SearchItems: утечки памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message27016/topic3097/">SearchItems: утечки памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте!<br />Информация получена, проблема изучается. Постараемся в ближайшее время дать ответ. <br />
			<i>03.10.2017 05:00:15, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message27016/topic3097/</link>
			<guid>http://forum.quik.ru/messages/forum10/message27016/topic3097/</guid>
			<pubDate>Tue, 03 Oct 2017 05:00:15 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SearchItems: утечки памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message27004/topic3097/">SearchItems: утечки памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_7FyZ47h9" href="/user/4021/" bx-tooltip-user-id="4021">Сергей</a>, <br /><br />одна из возможных причин - в создании функции-реферрала внутри другой функции. Не исключено, что в той реализации, которую вы указали, особенности Lua в механизме создания функций и их вызовов приводят к удержанию в памяти огромного количества экземпляров тела функции. Попробуйте вынести функцию-реферрал, которую вы указываете в качестве параметра для SearchItems(), за пределы какой-либо текущей функции или метода (:). Попробуйте оперировать ссылкой на отдельно &nbsp;стоящую функцию. <br />
			<i>02.10.2017 13:06:06, Andrei2016.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message27004/topic3097/</link>
			<guid>http://forum.quik.ru/messages/forum10/message27004/topic3097/</guid>
			<pubDate>Mon, 02 Oct 2017 13:06:06 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SearchItems: утечки памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message26990/topic3097/">SearchItems: утечки памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			У меня очень похожая история <br />
			<i>30.09.2017 12:08:20, s_mike@rambler.ru.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message26990/topic3097/</link>
			<guid>http://forum.quik.ru/messages/forum10/message26990/topic3097/</guid>
			<pubDate>Sat, 30 Sep 2017 12:08:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>SearchItems: утечки памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message26989/topic3097/">SearchItems: утечки памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Многократные вызовы SearchItems для поиска нужного инструмента в таблице лимитов по бумагам приводят к утечкам памяти, которые не может устранить сборщик мусора Lua.<br /><br />Следующий метод возвращает баланс по заданному инструменту и коду клиента:<br />
====code====
<pre>function TradeItem:get_balance()
&nbsp;&nbsp;&nbsp;local res = 0
&nbsp;&nbsp;&nbsp;if self.bal_func == nil then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bal_func = function(t) return t.limit_kind == 2 and t.client_code == self.clientcode and t.sec_code == self.seccode end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;local sec_table = SearchItems("depo_limits", 0, getNumberOf("depo_limits") - 1, self.bal_func)
&nbsp;&nbsp;&nbsp;if sec_table and #sec_table &#62; 0 then 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local table_item = getItem("depo_limits", sec_table&#91;1&#93;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if table_item then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res = table_item.currentbal
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;return res
end
</pre>
=============
Вызывается этот метод часто (несколько раз в секунду) и приводит к серьезным утечкам памяти (объем используемой памяти проверяю через функцию collectgarbage(&quot;count&quot;)). За день работы набирается больше 2 Гб.<br /><br />Если я буду искать нужный инструмент просто прямым перебором всех строк в таблице, то все нормально.<br /><br />Могут ли разработчики взглянуть на данную проблему? Версия QUIK 7.5.0.72, Lua версии 5.1. <br />
			<i>30.09.2017 12:00:22, Сергей.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message26989/topic3097/</link>
			<guid>http://forum.quik.ru/messages/forum10/message26989/topic3097/</guid>
			<pubDate>Sat, 30 Sep 2017 12:00:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
