﻿<?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">иногда случается следующий Exception</title>
  <id>~/topic/1981/inogda-sluchaetsya-sleduyushshii-exception/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-25T14:46:49Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1981" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/12520/</id>
    <title type="text">На codeplex зарегился, логин ANebotov, но вот как подавать заявку на подключение к проекту не понял....</title>
    <published>2011-10-19T10:49:14Z</published>
    <updated>2011-10-19T10:49:14Z</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;AN &lt;a href="https://stocksharp.com/posts/m/12517/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;На codeplex зарегился, логин ANebotov, но вот как подавать заявку на подключение к проекту не понял.&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/12517/</id>
    <title type="text">Утечка памяти осталась. Но вот приводят к утечке похоже не свечи, а EmulationTrader. Думаю свечи - с...</title>
    <published>2011-10-19T07:40:34Z</published>
    <updated>2011-10-19T07:40:34Z</updated>
    <author>
      <name>AN</name>
      <uri>https://stocksharp.com/users/28220/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Утечка памяти осталась. &lt;br /&gt;&lt;br /&gt;Но вот приводят к утечке похоже не свечи, а EmulationTrader. Думаю свечи - следствие EmulationTrader, т.к. они подписаны на его события. Кстати, может эту подписку реализовать через WeakReference, а то может складываться странная ситуация когда свечи уже никому не нужны, но т.к. они остались подписанными на сделки, то остаются висеть в памяти и тормозить-засорять. Хорошая статья об этом &lt;a target="_blank" rel="nofollow" href="https://stocksharp.com/away/?u=AQAAAAAAAAANygkgOJutceBrqLqFV1-jqBg_eQAUAagahmBpWZ5xg9OI4cTOy4sat8O4V8DGC8M" title="http://habrahabr.ru/blogs/net/89529/
"&gt;http://habrahabr.ru/blogs/net/89529/
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В общем я локализовывал утечку, сделав WeakReference на стратегию, трейдер и СandleManager. Ссылка на стратегию становиться null, а вот ссылка на EmulationTrader, и соответственно СandleManager, остается. &lt;br /&gt;&lt;br /&gt;Освободить память занимаемую EmulationTrader пытаюсь так:&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;
trader.StateChanged += () =&amp;gt;
{
	if (trader.State == EmulationStates.Stopped)
	{
		Optimizer.StrategyResults.Add(strategy as Optimization.IStrategy4Optimization);

			trader.StopExport();
			trader.Disconnect();
			trader.Dispose();

			trader = null;

			strategy.Stop();
			strategy.Dispose();
			strategy = null;

			//Запускаем следующую стратегию
			if (runFlag == true)
				startNewStrategy();
		}
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;На codeplex зарегился, логин ANebotov, но вот как подавать заявку на подключение к проекту не понял.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12384/</id>
    <title type="text">Параметром конструктора CandleManager является источник данных. Т.к. EmulationTrader используются ра...</title>
    <published>2011-10-16T22:00:42Z</published>
    <updated>2011-10-16T22:00:42Z</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;AN &lt;a href="https://stocksharp.com/posts/m/12366/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Параметром конструктора CandleManager является источник данных. Т.к. EmulationTrader используются разные, то и CandleManager создается каждый раз новый.&lt;br /&gt;&lt;br /&gt;Возможно повторное использование EmulationTrader или CandleManager?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сейчас на КодеПлексе залита версия, где построение свечек из сделок вынесено отдельно в CandleBuilder. Есть мнение, что новая модель может помочь в решении проблемы.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12366/</id>
    <title type="text">Параметром конструктора CandleManager является источник данных. Т.к. EmulationTrader используются ра...</title>
    <published>2011-10-15T18:31:03Z</published>
    <updated>2011-10-15T18:31:03Z</updated>
    <author>
      <name>AN</name>
      <uri>https://stocksharp.com/users/28220/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Параметром конструктора CandleManager является источник данных. Т.к. EmulationTrader используются разные, то и CandleManager создается каждый раз новый.&lt;br /&gt;&lt;br /&gt;Возможно повторное использование EmulationTrader или CandleManager?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12169/</id>
    <title type="text">Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением EmulationTrader.DaysInM...</title>
    <published>2011-10-10T23:09:44Z</published>
    <updated>2011-10-10T23:09:44Z</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;AN &lt;a href="https://stocksharp.com/posts/m/12164/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением&lt;br /&gt;&lt;ul&gt;&lt;li&gt;EmulationTrader.DaysInMemory&lt;br /&gt;&lt;li&gt;EmulationTrader.LoadingThreadCount&lt;br /&gt;&lt;li&gt;CandleContainer.MaxCandleCount&lt;br /&gt;&lt;li&gt;CandleContainer.MaxTradeCount&lt;br /&gt;&lt;/ul&gt;&lt;br /&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;AN &lt;a href="https://stocksharp.com/posts/m/12164/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;У меня немного другая ситуация: тестирование запускается и нормально отрабатывает и один, и даже 10 раз. Но идет постоянное накопление данных в памяти. Соответственно раз, эдак на 25 память заканчивается, и возникает OutOfMemory.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;25-ый прогон? А CandleManager у вас один и тот же?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12164/</id>
    <title type="text">Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением EmulationTrader.DaysInM...</title>
    <published>2011-10-10T20:15:54Z</published>
    <updated>2011-10-10T20:15:54Z</updated>
    <author>
      <name>AN</name>
      <uri>https://stocksharp.com/users/28220/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением&lt;br /&gt;&lt;ul&gt;&lt;li&gt;EmulationTrader.DaysInMemory&lt;br /&gt;&lt;li&gt;EmulationTrader.LoadingThreadCount&lt;br /&gt;&lt;li&gt;CandleContainer.MaxCandleCount&lt;br /&gt;&lt;li&gt;CandleContainer.MaxTradeCount&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;У меня немного другая ситуация: тестирование запускается и нормально отрабатывает и один, и даже 10 раз. Но идет постоянное накопление данных в памяти. Соответственно раз, эдак на 25 память заканчивается, и возникает OutOfMemory.&lt;br /&gt;Т.е. EmulationTrader не удаляется из памяти после использования, хотя ссылок на него, в моём коде, уже не остается.&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; trader.StateChanged += () =&amp;gt;&lt;br /&gt;{&lt;br /&gt;	if (trader.State == EmulationStates.Stopped)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;код:&lt;br /&gt;	&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;trader.StopExport();&lt;br /&gt;	trader.Disconnect();&lt;br /&gt;	trader.Dispose();&lt;br /&gt;	trader = null;&lt;br /&gt;&lt;br /&gt;	strategy.Stop();&lt;br /&gt;	strategy.Dispose();&lt;br /&gt;	strategy = null;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Со стратегией помогло, она теперь освобождается. А вот trader продолжает занимать память.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12159/</id>
    <title type="text">EmulationTrader создаю с параметром DaysInMemory = 1 Прочитайте, пожалуйста, описание по ссылке. Там...</title>
    <published>2011-10-10T16:35:49Z</published>
    <updated>2011-10-10T16:35:49Z</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;AN &lt;a href="https://stocksharp.com/posts/m/12156/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;EmulationTrader создаю с параметром DaysInMemory = 1&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/12156/</id>
    <title type="text">Эксепшен IndexOutOfRangeException в 4.0.2 исправлен. Спасибо! С OutOfMemory - где то явно есть утечк...</title>
    <published>2011-10-10T15:09:36Z</published>
    <updated>2011-10-10T15:10:58Z</updated>
    <author>
      <name>AN</name>
      <uri>https://stocksharp.com/users/28220/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Эксепшен IndexOutOfRangeException в 4.0.2 исправлен. Спасибо!&lt;br /&gt;&lt;br /&gt;С OutOfMemory - где то явно есть утечка:&lt;br /&gt;  Существуют ли глобальные списки Security, Portfolio, TrendMarketDepthGenerator, Strategy, CandleManager RegisterTimeFrameCandles или SimpleMovingAverage?&lt;br /&gt;&lt;br /&gt;EmulationTrader создаю с параметром DaysInMemory = 1&lt;br /&gt;&lt;br /&gt;Стратегию запускаю многократно, на 25 раз получаю OutOfMemory, каждый раз создаю новые Security, Portfolio, TrendMarketDepthGenerator, Strategy, CandleManager RegisterTimeFrameCandles или SimpleMovingAverage, предыдущие обнуляю. И вижу постепенный рост потребления памяти.&lt;br /&gt;&lt;br /&gt;Что ещё нужно обнулять? Возможно ли использовать данные объекты повторно (создав из них пул)?&lt;br /&gt;&lt;br /&gt;&lt;a href='http://dl.dropbox.com/u/4582525/ScreenShot/memory.png' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://dl.dropbox.com/u/4582525/ScreenShot/memory.png" style='max-width: 600px;' alt="outofmemory" title="outofmemory" /&gt;&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12122/</id>
    <title type="text">Данный Exception воспроизводится в 4.0.1, перехватывал в EmulationTrader.ProcessDataError У меня на ...</title>
    <published>2011-10-08T12:14:54Z</published>
    <updated>2011-10-08T12:14:54Z</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;AN &lt;a href="https://stocksharp.com/posts/m/12121/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Данный Exception воспроизводится в 4.0.1, перехватывал в EmulationTrader.ProcessDataError&lt;br /&gt;&lt;br /&gt;У меня на машине, во вложенном солюшене, воспроизводится примерно в 90% запусков. При этом если ничего не делать в ProcessDataError, то поток просто завершается, без каких либо сообщений.&lt;br /&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;AN &lt;a href="https://stocksharp.com/posts/m/12121/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Ещё случается OutOfMemoryException. Но эта другая тема, я её пока сам поиследую, если конечно вы с лету не научите как избежать.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stocksharp.com/doc/html/5b90a23e-24b9-474a-a699-da47b666194a.htm " title="http://stocksharp.com/doc/html/5b90a23e-24b9-474a-a699-da47b666194a.htm "&gt;http://stocksharp.com/do...a-a699-da47b666194a.htm &lt;/a&gt;Там написано про управление памятью.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12121/</id>
    <title type="text">Данный Exception воспроизводится в 4.0.1, перехватывал в EmulationTrader.ProcessDataError У меня на ...</title>
    <published>2011-10-07T21:04:42Z</published>
    <updated>2011-10-07T21:22:50Z</updated>
    <author>
      <name>AN</name>
      <uri>https://stocksharp.com/users/28220/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Данный Exception воспроизводится в 4.0.1, перехватывал в EmulationTrader.ProcessDataError&lt;br /&gt;&lt;br /&gt;У меня на машине, во вложенном солюшене, воспроизводится примерно в 90% запусков. При этом если ничего не делать в ProcessDataError, то поток просто завершается, без каких либо сообщений.&lt;br /&gt;&lt;br /&gt;А возможно EmulationTrader стартовать в том же потоке? Я бы многопоточность сам реализовал, и перехватывать всякую бяку было бы удобнее.&lt;br /&gt;&lt;br /&gt;Ещё случается OutOfMemoryException. Но эта другая тема, я её пока сам поиследую, если конечно вы с лету не научите как избежать.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11958/</id>
    <title type="text">версия 3.2.10 System.IndexOutOfRangeException was unhandled Message=Индекс находился вне границ масс...</title>
    <published>2011-10-05T19:37:52Z</published>
    <updated>2011-10-05T19:37:52Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;AN &lt;a href="https://stocksharp.com/posts/m/11957/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;версия 3.2.10&lt;br /&gt;&lt;br /&gt;System.IndexOutOfRangeException was unhandled&lt;br /&gt;  Message=Индекс находился вне границ массива.&lt;br /&gt;  Source=Ecng.Common&lt;br /&gt;  StackTrace:&lt;br /&gt;       в Ecng.Common.RandomIntArray.Next()&lt;br /&gt;       в StockSharp.Algo.Testing.MarketDepthGenerator.CreateQuote(Decimal startPrice, OrderDirections direction)&lt;br /&gt;       в StockSharp.Algo.Testing.TrendMarketDepthGenerator.Generate(MarketDepth data, DateTime time)&lt;br /&gt;       в StockSharp.Algo.Testing.MarketDepthGenerator.Generate(DateTime time)&lt;br /&gt;       в StockSharp.Algo.Testing.EmulationTrader.#=qaPQ2zFVEmGlcCeb1W6Fzxg==(DateTime #=qV9lC0hKzLXxXFDwtYDa2Jw==)&lt;br /&gt;       в StockSharp.Algo.Testing.EmulationTrader.#=qsJs5WxEsnHTRLEGnw$PwNg==(IEnumerable`1 #=qIT1iMH0n2wDEBu969ICSYQ==)&lt;br /&gt;       в Ecng.Common.ThreadHelper.&amp;lt;&amp;gt;c__DisplayClass8`1.&amp;lt;CreateThread&amp;gt;b__7(Object a)&lt;br /&gt;       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)&lt;br /&gt;       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;       в System.Threading.ThreadHelper.ThreadStart(Object obj)&lt;br /&gt;  InnerException: &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.0.1 уже выпустили, смотрите там.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11957/</id>
    <title type="text">версия 3.2.10 System.IndexOutOfRangeException was unhandled Message=Индекс находился вне границ масс...</title>
    <published>2011-10-05T19:33:33Z</published>
    <updated>2011-10-05T19:33:33Z</updated>
    <author>
      <name>AN</name>
      <uri>https://stocksharp.com/users/28220/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">версия 3.2.10&lt;br /&gt;&lt;br /&gt;System.IndexOutOfRangeException was unhandled&lt;br /&gt;  Message=Индекс находился вне границ массива.&lt;br /&gt;  Source=Ecng.Common&lt;br /&gt;  StackTrace:&lt;br /&gt;       в Ecng.Common.RandomIntArray.Next()&lt;br /&gt;       в StockSharp.Algo.Testing.MarketDepthGenerator.CreateQuote(Decimal startPrice, OrderDirections direction)&lt;br /&gt;       в StockSharp.Algo.Testing.TrendMarketDepthGenerator.Generate(MarketDepth data, DateTime time)&lt;br /&gt;       в StockSharp.Algo.Testing.MarketDepthGenerator.Generate(DateTime time)&lt;br /&gt;       в StockSharp.Algo.Testing.EmulationTrader.#=qaPQ2zFVEmGlcCeb1W6Fzxg==(DateTime #=qV9lC0hKzLXxXFDwtYDa2Jw==)&lt;br /&gt;       в StockSharp.Algo.Testing.EmulationTrader.#=qsJs5WxEsnHTRLEGnw$PwNg==(IEnumerable`1 #=qIT1iMH0n2wDEBu969ICSYQ==)&lt;br /&gt;       в Ecng.Common.ThreadHelper.&amp;lt;&amp;gt;c__DisplayClass8`1.&amp;lt;CreateThread&amp;gt;b__7(Object a)&lt;br /&gt;       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)&lt;br /&gt;       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;br /&gt;       в System.Threading.ThreadHelper.ThreadStart(Object obj)&lt;br /&gt;  InnerException: </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>