﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Ошибка System.OutOfMemoryException в NDde.dll</title>
  <id>~/topic/2894/oshibka-system_outofmemoryexception-v-ndde_dll/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-05T16:38:50Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2894" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/20578/</id>
    <title type="text">Регулярно использую candleManager, никогда проблем с утечками не было. У вас значит что-то в коде не...</title>
    <published>2012-07-27T13:39:34Z</published>
    <updated>2012-07-27T13:39:34Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Регулярно использую candleManager, никогда проблем с утечками не было.&lt;br /&gt;У вас значит что-то в коде не то.&lt;br /&gt;&lt;br /&gt;Поставьте профайлер памяти да посмотрите где память утекает от вас. К примеру профайлер от JetBrains.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20576/</id>
    <title type="text">Ограничил количество инструментов в таблице всех сделок - только RIU2. Еще урезал проект - оставил т...</title>
    <published>2012-07-27T12:54:15Z</published>
    <updated>2012-07-27T12:54:47Z</updated>
    <author>
      <name>Серёжа Сорокин</name>
      <uri>https://stocksharp.com/users/212/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Ограничил количество инструментов в таблице всех сделок - только RIU2. Еще урезал проект - оставил только трейдера и CandleManager, который строит часовые свечки по RIU2.&lt;br /&gt;Последний запуск программы в &lt;br /&gt;&lt;b&gt;15:14, в диспетчере она занимала 234600 Кб,&lt;/b&gt; при этом в _trader.Trades было довольно много сделок - &lt;b&gt;337 899 штук.&lt;/b&gt;&lt;br /&gt;Но размер продолжает расти! В&lt;br /&gt;&lt;b&gt;15:27, памяти 705 068 Кб, сделок 344 658.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;То есть &lt;b&gt;не из-за количества сделок растет размер&lt;/b&gt;. И еще раз говорю - моих переменных, кроме CandleManager, никаких нету, накапливающих данные.&lt;br /&gt;&lt;br /&gt;После этого прямо на глазах потребляемая память растет примерно на 9МБ в секунду. И еще через три минуты становится около 1.3Гб, расти перестает на минуту. Потом вываливается ошибка, описанная в первом посте.&lt;br /&gt;&lt;br /&gt;У проекта удалил вообще все, кроме трейдера и кендл менеджера. Вот проект: &lt;a target="_blank" rel="nofollow" href="https://stocksharp.com/away/?u=AQAAAAAAAABZi6aGiRBsiReXaSBqb4iH6daFvurWL6yDLyBGqePqdHWm5xVi7DnG_phtSuNQbWyj8GIwpG6Ufh0Z9scuoAfY5UaHSi2l_OoUom4GwvYnrn3G7yN1uXeLVn6-SSFf2COXmwlpWzN-g4QBsxSrOZXpEYhFSI5jxzngBSmgsXfbMRqwuOWWNguX52MOq258sNQ" title="https://dl.dropbox.com/u/59802690/AllStrategies_4.1_%D0%B4%D0%BB%D1%8F%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8_2012_07_27.rar
"&gt;https://dl.dropbox.com/u...BA%D0%B8_2012_07_27.rar
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Я практически уверен, что где-то утечка памяти. Подскажите, пожалуйста, как вычислить эту ошибку?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20540/</id>
    <title type="text">Зачем с приходом каждого нового тика делать расчет индикатора? Вроде как логично делать расчет когда...</title>
    <published>2012-07-26T05:08:58Z</published>
    <updated>2012-07-26T05:13:43Z</updated>
    <author>
      <name>Серёжа Сорокин</name>
      <uri>https://stocksharp.com/users/212/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Зачем с приходом каждого нового тика делать расчет индикатора? Вроде как логично делать расчет когда свечка полностью сформировалась.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;А я хочу формировать сигналы внутри свечки. За час может многое произойти и хочу оперативно реагировать на это.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Каждый раз, когда срабатывает событие Processing, беря все свечки по серии&lt;br /&gt;Код:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;seria.GetCandles&amp;lt;Candle&amp;gt;()&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;вы таким образом убиваете скорость работы робота.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я знаю. Просто при первом срабатывании этого события thisCandle уже приходит непервая. Вот чтобы ее не пропустить. Да и разница в производительностью между выборкой всех свечек серии и отбором среди них одной последней (по времени) и просто последней несущественна, если у меня часовки. Их всего 30-40 штук.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Сегодня попробую запустить сначала с обновлением индикаторов раз в час. Потом с более строгим отбором всех сделок в квике. Посмотрим, что получится.&lt;/b&gt; [smile]</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20535/</id>
    <title type="text">Зачем с приходом каждого нового тика делать расчет индикатора? Вроде как логично делать расчет когда...</title>
    <published>2012-07-25T20:22:43Z</published>
    <updated>2012-07-25T20:22:43Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Зачем с приходом каждого нового тика делать расчет индикатора? Вроде как логично делать расчет когда свечка полностью сформировалась.&lt;br /&gt;&lt;br /&gt;Каждый раз, когда срабатывает событие &lt;b&gt;Processing&lt;/b&gt;, беря все свечки по серии &lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

seria.GetCandles&amp;lt;Candle&amp;gt;()
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;вы таким образом убиваете скорость работы робота.&lt;br /&gt;&lt;br /&gt;Последняя свечка и так передается в обработчик - thisCandle.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20534/</id>
    <title type="text">Для Квика фильтр не работает. Все что льет Квик, то и приходит. И копится? Просто я не создавал спец...</title>
    <published>2012-07-25T20:16:44Z</published>
    <updated>2012-07-25T20:16:44Z</updated>
    <author>
      <name>Серёжа Сорокин</name>
      <uri>https://stocksharp.com/users/212/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Для Квика фильтр не работает. Все что льет Квик, то и приходит. &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;И копится? Просто я не создавал специальных переменных, значит это в самой библиотеке? А очистить можно - например, трейдер обнулить?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20533/</id>
    <title type="text"> В терминале стоит фильтр &amp;quot;все фьючерсы&amp;quot;. Но ведь в коде я только один раз подписываюсь на тики по и...</title>
    <published>2012-07-25T20:06:30Z</published>
    <updated>2012-07-25T20:06:30Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Серёжа Сорокин &lt;a href="https://stocksharp.com/posts/m/20529/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;В терминале стоит фильтр &amp;quot;все фьючерсы&amp;quot;. Но ведь в коде я только один раз подписываюсь на тики по инструменту RIU2: &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Для Квика фильтр не работает. Все что льет Квик, то и приходит.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20529/</id>
    <title type="text"> Когда не хватает памяти, то упасть может где угодно, где выделяется память. Хоть 1 байт. Может проб...</title>
    <published>2012-07-25T19:22:17Z</published>
    <updated>2012-07-25T19:22:17Z</updated>
    <author>
      <name>Серёжа Сорокин</name>
      <uri>https://stocksharp.com/users/212/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Когда не хватает памяти, то упасть может где угодно, где выделяется память. Хоть 1 байт. Может проблема в тиках? Фильтр на этой таблице стоит? &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В терминале стоит фильтр &amp;quot;все фьючерсы&amp;quot;. Но ведь в коде я только один раз подписываюсь на тики по инструменту RIU2: &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
_trader.RegisterMarketDepth(sec);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Разве может быть в тиках?&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;Оптимизируйте приложение по памяти, 1.5 гига - как-то мягко говоря много. &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Так у меня там всего 4 индикатора и один candleManager из переменных, которые именно накапливают данные. Это точно не где-то в переменных самой библиотеки копится?&lt;br /&gt;&lt;br /&gt;В алгоритме я использую подписку на изменение свечки:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
_candleManager.Processing -= (seria, candle) =&amp;gt; CandlesChanged(seria, candle);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Это событие срабатывает очень часто - несколько раз в секунду. А внутри него:&lt;br /&gt;        &lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
private void CandlesChanged(CandleSeries seria, Candle thisCandle)
        {
            foreach (var candle in seria.GetCandles&amp;lt;Candle&amp;gt;().Where(candle =&amp;gt; _lastCandle == null || candle.OpenTime &amp;gt;= _lastCandle.OpenTime))
            {
                sar.Process((CandleIndicatorValue)candle);
                adx.Process((CandleIndicatorValue)candle);
                
                
                if (_lastCandle != null &amp;amp;&amp;amp; candle.OpenTime &amp;gt; _lastCandle.OpenTime)
                {
                    lastAdx = adx.MovingAverage.LastValue;
                    _lastCandle = candle;
                    this.AddInfoLog(&amp;quot;Перешли на следующую свечку со временем открытия {0}.&amp;quot;, _lastCandle.OpenTime);

                    sma3.Process((DecimalIndicatorValue)candle.ClosePrice);
                    sma12.Process((DecimalIndicatorValue)candle.ClosePrice);
                }
                if (candle.OpenTime != _timeFrame.GetCandleBounds(Trader.MarketTime, Security.Exchange).Min &amp;amp;&amp;amp; !Allloaded)
                    continue;
                if (_candleManager.Container.GetCandles(_candleManager.Series.First()).Count() &amp;lt; 18)
                    continue;
                
                Allloaded = true;
                var order = AlterantiveSignal(candle, _candleManager);
                if (AlterantiveSignal == null || order == null) return;
                var child = new MarketQuotingStrategy(order, Security.MinStepPrice, lastMarketDepth.BestPair.SpreadPrice);
                ChildStrategies.Add(child);
                currentQuoting = child;
                child.Start();
            }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;То есть из серии выбирается последняя свечка (условие Where), по ней несколько раз в секунду срабатывает Process у индикаторов. Но я смотрел исходный код индикаторов (adx смотрел). Ведь если время свечки то же, что у прошлой добавленной, то они просто обновляются, они не копят в себе слишком большой буфер? Или все-таки накапливают?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20526/</id>
    <title type="text">Оптимизируйте приложение по памяти, 1.5 гига - как-то мягко говоря много.</title>
    <published>2012-07-25T18:50:50Z</published>
    <updated>2012-07-25T18:50:50Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Оптимизируйте приложение по памяти, 1.5 гига - как-то мягко говоря много.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20525/</id>
    <title type="text"> На скриншотах можно увидеть, что ошибка вываливается в NDde.Foundation.Server.DdemlServer.ProcessCa...</title>
    <published>2012-07-25T18:49:10Z</published>
    <updated>2012-07-25T18:49:10Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Серёжа Сорокин &lt;a href="https://stocksharp.com/posts/m/20522/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;На скриншотах можно увидеть, что ошибка вываливается в NDde.Foundation.Server.DdemlServer.ProcessCallBack().&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Когда не хватает памяти, то упасть может где угодно, где выделяется память. Хоть 1 байт. Может проблема в тиках? Фильтр на этой таблице стоит?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/20522/</id>
    <title type="text">Использую 4.1.3, скачанный из репозитория с номером 18403. Программа компилируется и нормально работ...</title>
    <published>2012-07-25T18:24:58Z</published>
    <updated>2012-07-25T18:28:07Z</updated>
    <author>
      <name>Серёжа Сорокин</name>
      <uri>https://stocksharp.com/users/212/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Использую 4.1.3, скачанный из репозитория с номером 18403. Программа компилируется и нормально работает около часа. При запуске занимает память около 400Мб, но через час вываливается эта ошибка. Программа уже использует 1.3-1.5Гб (по диспетчеру задач смотрю). Пишет &amp;quot;нет исходных файлов для отладки&amp;quot;, значит это в защищенной длл. Скриншоты прикрепляю и проект, на котором ошибка выскакивает, тоже. Стратегия простая на часовых свечках. При работе подписывается на стакан и на свечки (candleManager) по одному инструменту RIU2. Если будете запускать, то она там перед работой качает с финама исторические данные в каталог d:\historyC#_60. Если мешает, то, наверное, этот участок можно закомментировать.&lt;br /&gt;&lt;br /&gt;На скриншотах можно увидеть, что ошибка вываливается в NDde.Foundation.Server.DdemlServer.ProcessCallBack().&lt;br /&gt;&lt;br /&gt;Возможно, баг, а, возможно, я неправильно понимаю логику S#. Посмотрите, пожалуйста, в чем тут может быть причина?&lt;br /&gt;&lt;br /&gt;Проект, на котором через час вываливается ошибка: &lt;a target="_blank" rel="nofollow" href="https://stocksharp.com/away/?u=AQAAAAAAAABZi6aGiRBsiReXaSBqb4iH6daFvurWL6yDLyBGqePqdHWm5xVi7DnG_phtSuNQbWyj8GIwpG6Ufh0Z9scuoAfY5UaHSi2l_OoUom4GwvYnrn3G7yN1uXeLVn6-SSFf2COXmwlpWzN-g4QBsxSrOZXpe86tKobPODS74VcmOJNkVg" title="https://dl.dropbox.com/u/59802690/AllStrategies_4.1_%D0%B4%D0%BB%D1%8F%20%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8.rar"&gt;https://dl.dropbox.com/u...B0%D0%B2%D0%BA%D0%B8.rar&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>