Многократные вызовы SearchItems для поиска нужного инструмента в таблице лимитов по бумагам приводят к утечкам памяти, которые не может устранить сборщик мусора Lua.
Следующий метод возвращает баланс по заданному инструменту и коду клиента:
Вызывается этот метод часто (несколько раз в секунду) и приводит к серьезным утечкам памяти (объем используемой памяти проверяю через функцию collectgarbage("count")). За день работы набирается больше 2 Гб.
Если я буду искать нужный инструмент просто прямым перебором всех строк в таблице, то все нормально.
Могут ли разработчики взглянуть на данную проблему? Версия QUIK 7.5.0.72, Lua версии 5.1.
				Следующий метод возвращает баланс по заданному инструменту и коду клиента:
| Код | 
|---|
| function TradeItem:get_balance()
   local res = 0
   if self.bal_func == nil then
      self.bal_func = function(t) return t.limit_kind == 2 and t.client_code == self.clientcode and t.sec_code == self.seccode end
   end
   local sec_table = SearchItems("depo_limits", 0, getNumberOf("depo_limits") - 1, self.bal_func)
   if sec_table and #sec_table > 0 then 
      local table_item = getItem("depo_limits", sec_table[1])
      if table_item then
         res = table_item.currentbal
      end
   end
   return res
end
 | 
Если я буду искать нужный инструмент просто прямым перебором всех строк в таблице, то все нормально.
Могут ли разработчики взглянуть на данную проблему? Версия QUIK 7.5.0.72, Lua версии 5.1.
