﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/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-06-14T21:38:27Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1981" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/12520/</id>
    <title type="text">AN: На 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.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12517)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
На codeplex зарегился, логин ANebotov, но вот как подавать заявку на подключение к проекту не понял.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Присоединил.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/28220/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Утечка памяти осталась.&lt;/p&gt;
&lt;p&gt;Но вот приводят к утечке похоже не свечи, а EmulationTrader. Думаю свечи - следствие EmulationTrader, т.к. они подписаны на его события. Кстати, может эту подписку реализовать через WeakReference, а то может складываться странная ситуация когда свечи уже никому не нужны, но т.к. они остались подписанными на сделки, то остаются висеть в памяти и тормозить-засорять. Хорошая статья об этом &lt;a href="http://habrahabr.ru/blogs/net/89529/" rel="nofollow" target="_blank"&gt;http://habrahabr.ru/blogs/net/89529/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В общем я локализовывал утечку, сделав WeakReference на стратегию, трейдер и СandleManager. Ссылка на стратегию становиться null, а вот ссылка на EmulationTrader, и соответственно СandleManager, остается.&lt;/p&gt;
&lt;p&gt;Освободить память занимаемую EmulationTrader пытаюсь так:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
&lt;p&gt;На codeplex зарегился, логин ANebotov, но вот как подавать заявку на подключение к проекту не понял.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12384/</id>
    <title type="text">AN: Параметром конструктора 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.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12366)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
Параметром конструктора CandleManager является источник данных. Т.к. EmulationTrader используются разные, то и CandleManager создается каждый раз новый.&lt;/p&gt;
&lt;p&gt;Возможно повторное использование EmulationTrader или CandleManager?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Сейчас на КодеПлексе залита версия, где построение свечек из сделок вынесено отдельно в CandleBuilder. Есть мнение, что новая модель может помочь в решении проблемы.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/28220/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Параметром конструктора CandleManager является источник данных. Т.к. EmulationTrader используются разные, то и CandleManager создается каждый раз новый.&lt;/p&gt;
&lt;p&gt;Возможно повторное использование EmulationTrader или CandleManager?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12169/</id>
    <title type="text">AN: Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением EmulationTrader.Day...</title>
    <published>2011-10-10T23:09:44Z</published>
    <updated>2011-10-10T23:09:44Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12164)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EmulationTrader.DaysInMemory&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;EmulationTrader.LoadingThreadCount&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;CandleContainer.MaxCandleCount&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;CandleContainer.MaxTradeCount&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;А вы устанавливали только один параметр. На память в моменте (пик) влияют первые два, а на общую последние два.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12164)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
У меня немного другая ситуация: тестирование запускается и нормально отрабатывает и один, и даже 10 раз. Но идет постоянное накопление данных в памяти. Соответственно раз, эдак на 25 память заканчивается, и возникает OutOfMemory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;25-ый прогон? А CandleManager у вас один и тот же?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/28220/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Перечитал ещё раз. Не обнаружил ничего относящегося к памяти, за исключением&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EmulationTrader.DaysInMemory&lt;/li&gt;
&lt;li&gt;EmulationTrader.LoadingThreadCount&lt;/li&gt;
&lt;li&gt;CandleContainer.MaxCandleCount&lt;/li&gt;
&lt;li&gt;CandleContainer.MaxTradeCount
У меня немного другая ситуация: тестирование запускается и нормально отрабатывает и один, и даже 10 раз. Но идет постоянное накопление данных в памяти. Соответственно раз, эдак на 25 память заканчивается, и возникает OutOfMemory.
Т.е. EmulationTrader не удаляется из памяти после использования, хотя ссылок на него, в моём коде, уже не остается.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Добавил в&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;trader.StateChanged += () =&amp;gt;
{
if (trader.State == EmulationStates.Stopped)код:
&amp;gt; trader.StopExport();
trader.Disconnect();
trader.Dispose();
trader = null;&lt;/p&gt;
&lt;p&gt;strategy.Stop();
strategy.Dispose();
strategy = null;
Со стратегией помогло, она теперь освобождается. А вот trader продолжает занимать память.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12159/</id>
    <title type="text">AN: 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.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12156)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
EmulationTrader создаю с параметром DaysInMemory = 1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Прочитайте, пожалуйста, описание по ссылке. Там написано подробно, что на что влияет.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/28220/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Эксепшен IndexOutOfRangeException в 4.0.2 исправлен. Спасибо!&lt;/p&gt;
&lt;p&gt;С OutOfMemory - где то явно есть утечка:
Существуют ли глобальные списки Security, Portfolio, TrendMarketDepthGenerator, Strategy, CandleManager RegisterTimeFrameCandles или SimpleMovingAverage?&lt;/p&gt;
&lt;p&gt;EmulationTrader создаю с параметром DaysInMemory = 1&lt;/p&gt;
&lt;p&gt;Стратегию запускаю многократно, на 25 раз получаю OutOfMemory, каждый раз создаю новые Security, Portfolio, TrendMarketDepthGenerator, Strategy, CandleManager RegisterTimeFrameCandles или SimpleMovingAverage, предыдущие обнуляю. И вижу постепенный рост потребления памяти.&lt;/p&gt;
&lt;p&gt;Что ещё нужно обнулять? Возможно ли использовать данные объекты повторно (создав из них пул)?&lt;/p&gt;
&lt;p&gt;&lt;img src="http://dl.dropbox.com/u/4582525/ScreenShot/memory.png" alt="outofmemory" /&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/12122/</id>
    <title type="text">AN: Данный 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.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12121)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
Данный Exception воспроизводится в 4.0.1, перехватывал в EmulationTrader.ProcessDataError&lt;/p&gt;
&lt;p&gt;У меня на машине, во вложенном солюшене, воспроизводится примерно в 90% запусков. При этом если ничего не делать в ProcessDataError, то поток просто завершается, без каких либо сообщений.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Проблема была из-за многопоточности. Будет фикс.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12121)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
Ещё случается OutOfMemoryException. Но эта другая тема, я её пока сам поиследую, если конечно вы с лету не научите как избежать.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://stocksharp.com/doc/html/5b90a23e-24b9-474a-a699-da47b666194a.htm"&gt;http://stocksharp.com/doc/html/5b90a23e-24b9-474a-a699-da47b666194a.htm&lt;/a&gt; Там написано про управление памятью.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/28220/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Данный Exception воспроизводится в 4.0.1, перехватывал в EmulationTrader.ProcessDataError&lt;/p&gt;
&lt;p&gt;У меня на машине, во вложенном солюшене, воспроизводится примерно в 90% запусков. При этом если ничего не делать в ProcessDataError, то поток просто завершается, без каких либо сообщений.&lt;/p&gt;
&lt;p&gt;А возможно EmulationTrader стартовать в том же потоке? Я бы многопоточность сам реализовал, и перехватывать всякую бяку было бы удобнее.&lt;/p&gt;
&lt;p&gt;Ещё случается OutOfMemoryException. Но эта другая тема, я её пока сам поиследую, если конечно вы с лету не научите как избежать.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/11958/</id>
    <title type="text">AN: версия 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.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11957)" rel="nofollow" target="_blank"&gt;AN&lt;/a&gt;:&lt;/strong&gt;
версия 3.2.10&lt;/p&gt;
&lt;p&gt;System.IndexOutOfRangeException was unhandled
Message=Индекс находился вне границ массива.
Source=Ecng.Common
StackTrace:
в Ecng.Common.RandomIntArray.Next()
в StockSharp.Algo.Testing.MarketDepthGenerator.CreateQuote(Decimal startPrice, OrderDirections direction)
в StockSharp.Algo.Testing.TrendMarketDepthGenerator.Generate(MarketDepth data, DateTime time)
в StockSharp.Algo.Testing.MarketDepthGenerator.Generate(DateTime time)
в StockSharp.Algo.Testing.EmulationTrader.#=qaPQ2zFVEmGlcCeb1W6Fzxg==(DateTime #=qV9lC0hKzLXxXFDwtYDa2Jw==)
в StockSharp.Algo.Testing.EmulationTrader.#=qsJs5WxEsnHTRLEGnw$PwNg==(IEnumerable&lt;code&gt;1 #=qIT1iMH0n2wDEBu969ICSYQ==) в Ecng.Common.ThreadHelper.&amp;lt;&amp;gt;c__DisplayClass8&lt;/code&gt;1.&lt;CreateThread&gt;b__7(Object a)
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart(Object obj)
InnerException:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;4.0.1 уже выпустили, смотрите там.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/28220/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;версия 3.2.10&lt;/p&gt;
&lt;p&gt;System.IndexOutOfRangeException was unhandled
Message=Индекс находился вне границ массива.
Source=Ecng.Common
StackTrace:
в Ecng.Common.RandomIntArray.Next()
в StockSharp.Algo.Testing.MarketDepthGenerator.CreateQuote(Decimal startPrice, OrderDirections direction)
в StockSharp.Algo.Testing.TrendMarketDepthGenerator.Generate(MarketDepth data, DateTime time)
в StockSharp.Algo.Testing.MarketDepthGenerator.Generate(DateTime time)
в StockSharp.Algo.Testing.EmulationTrader.#=qaPQ2zFVEmGlcCeb1W6Fzxg==(DateTime #=qV9lC0hKzLXxXFDwtYDa2Jw==)
в StockSharp.Algo.Testing.EmulationTrader.#=qsJs5WxEsnHTRLEGnw$PwNg==(IEnumerable&lt;code&gt;1 #=qIT1iMH0n2wDEBu969ICSYQ==) в Ecng.Common.ThreadHelper.&amp;lt;&amp;gt;c__DisplayClass8&lt;/code&gt;1.&lt;CreateThread&gt;b__7(Object a)
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart(Object obj)
InnerException:&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>