<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Очищение памяти]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Очищение памяти форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Tue, 07 Apr 2026 13:19:15 +0300</pubDate>
		<item>
			<title>Очищение памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31800/topic3739/">Очищение памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_AnlymRf6" href="/user/115/" bx-tooltip-user-id="115">_sk_</a> написал:<br />Если в таблице относительно немного колонок, но много строк, то есть способ сильно сэкономить, если хранить таблицу в виде набора колонок. В Вашем примере будет 6 колонок, которые можно реализовать через массив чисел с индексацией с 1. Конечно, надо беспокоиться о том, чтобы в колонках было одинаковое количество элементов. В результате экономия будет существенной, т.к. не будет создаваться хэш-таблица на каждую строку.<br />=============<br />А вот это интересный приём... есть оценки сравнения по расходу памяти на таблицу чисел 10x1'000'000 в обоих форматах?... даже вот любопытно стало, будет время, запилю тестик.... <br />
			<i>15.06.2018 14:44:17, Suntor.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31800/topic3739/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31800/topic3739/</guid>
			<pubDate>Fri, 15 Jun 2018 14:44:17 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очищение памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31787/topic3739/">Очищение памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Если в таблице относительно немного колонок, но много строк, то есть способ сильно сэкономить, если хранить таблицу в виде набора колонок. В Вашем примере будет 6 колонок, которые можно реализовать через массив чисел с индексацией с 1. Конечно, надо беспокоиться о том, чтобы в колонках было одинаковое количество элементов. В результате экономия будет существенной, т.к. не будет создаваться хэш-таблица на каждую строку. <br />
			<i>15.06.2018 07:57:44, _sk_.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31787/topic3739/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31787/topic3739/</guid>
			<pubDate>Fri, 15 Jun 2018 07:57:44 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очищение памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31769/topic3739/">Очищение памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Почитайте на досуге про сборку мусора (garbage collection). В Lua этот механизм используется, как Вы уже смогли заметить. <br />
			<i>14.06.2018 14:19:34, Enfernuz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31769/topic3739/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31769/topic3739/</guid>
			<pubDate>Thu, 14 Jun 2018 14:19:34 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очищение памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31766/topic3739/">Очищение памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			collectgarbage() &nbsp;решило проблему<br />теперь память очищается <br />
			<i>14.06.2018 13:16:12, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31766/topic3739/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31766/topic3739/</guid>
			<pubDate>Thu, 14 Jun 2018 13:16:12 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очищение памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31763/topic3739/">Очищение памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Уточнение.<br />Выключение скрипта с помощью кнопки Остановить освобождает память.<br />Но если он останавливается по причине выполнения всех задач (нет вечного цикла <B>while is run do </B>и при этом закончилась функция main), то память не освобождается. <br />
			<i>14.06.2018 12:32:55, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31763/topic3739/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31763/topic3739/</guid>
			<pubDate>Thu, 14 Jun 2018 12:32:55 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>Очищение памяти</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message31762/topic3739/">Очищение памяти</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Господа, прошу подсказать. <br />Мои скрипты работают на луа. Я объединяю данные в огромную таблицу.<br />Вот образец данных:<br /><img src="http://dl3.joxi.net/drive/2018/06/14/0011/1313/742689/89/a4bc029091.png" alt="Пользователь добавил изображение" border="0" /><br />Таких файлов десятки.<br />Я их склеиваю в одну большую таблицу с помощью функции:
====code====
<pre>function tableMerge(table1, table2)
&nbsp;&nbsp;&nbsp;&nbsp;for k,v in pairs(table2) do
&nbsp;&nbsp;&nbsp;--deceleration()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.insert(table1,v)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--проверим качество данных в таблице. Нет ли разрывов в записях.
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- if v.stime-(remember_prev_time or v.stime)&#62;100 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- mm("в таблице дырка "..v.stime.." "..v.bid)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remember_prev_time=v.stime
&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;remember_prev_time=nil
&nbsp;&nbsp;&nbsp;&nbsp;return table1
end </pre>
=============
В итоге получается огромная таблица, которая сильно забивает память.<br />---<br />Вот как это выглядит на виртуалке.<br /><img src="http://dl3.joxi.net/drive/2018/06/14/0011/1313/742689/89/04de2a9928.png" alt="Пользователь добавил изображение" border="0" /><br /><B><U>А теперь мой вопрос.</U></B><br />в конце работы скрипта я УБИВАЮ эту гигантскую таблицу с помощью строчки<br />t_big=nil<br />Надеюсь, что при этом будет освобождена память.<br />Но этого не происходит.<br />Более того. Остановка скрипта не освобождает память.<br />Она освобождается только с выключением КВИКа<br />подскажите как освобождать память силами самого скрипта.<br />Спасибо.<br />---<br />П.С. Я знаю, что мой подход сам по себе не совершенен. Иду по пути переноса громоздких функций в dll. Но в силу слабеньких мозгов мне ещё далеко до этого. Так что пока работаю в рамках Луа. <br />
			<i>14.06.2018 11:21:05, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message31762/topic3739/</link>
			<guid>http://forum.quik.ru/messages/forum10/message31762/topic3739/</guid>
			<pubDate>Thu, 14 Jun 2018 11:21:05 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
