System.OutOfMemoryException

System.OutOfMemoryException
Atom
7/11/2014
devruss


Проблема следующая, на бэктесте тиковых данных месяца на 3 (т.е. полностью один фьючерсный контракт от экспирации до экспирации) очень часто вылетает ошибка System.OutOfMemoryException
Вылетает на разных timestamps, стэктрейс приводит в обработку индикаторов (тоже разных). Если сразу перезапустить бэктест, то ошибка пропадает и бэктест завершается удачно. Бывает надо раза по 2 перезапускать.

Вопрос: что может быть причиной данной ошибки и как ее вылавливать?
(я не программер, так что может вопрос простой и известный - тогда киньте ссылку на решение пожалуйста)

Tags:


Thanks:


poison

Avatar
Date: 7/11/2014
Reply


Память оперативная кончилась?
Thanks:

devruss

Avatar
Date: 7/11/2014
Reply


poison
Память оперативная кончилась?


Неа, проверял уже: 16 Гб оперативки, всегда 3-4 Гб свободно. Эффект от загруженности не зависит.
Thanks:

devruss

Avatar
Date: 7/11/2014
Reply


Ну вот классический пример:
http://gyazo.com/7be7b72f6a67e0874342ca24e42122ee

Code

   at StockSharp.Algo.Indicators.SingleIndicatorValue`1.GetValue[T]()
   at StockSharp.Algo.Indicators.Trend.SimpleMovingAverage.OnProcess(IIndicatorValue input)
   at StockSharp.Algo.Indicators.BaseIndicator`1.Process(IIndicatorValue input)   
   at System.Action`1.Invoke(T obj)
   at Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg)
   at StockSharp.Algo.Candles.CandleSeries.#=qfR$LDCvMTYoTTH67n1X664miBKQST6wqusmzmzYrlOk=(CandleSeries #=qFAXdhaFsC8DnUmGNIk6IwQ==, Candle #=q8QgvZ_AB8w8N$XxPV8$kYA==)
   at Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)
   at StockSharp.Algo.Candles.CandleManager.#=qgTs24klIPBFPQxo35ULaR916l6_z8TQcAnrkAw3sOmQ=.#=qcx4pHVK__g0zIaYY349qJg==(Candle #=qs41$tHtdOd5CoFPaVoonVQ==)
   at #=qKH3LDQrqwmDAD$ADaFnGFjjzy14XZDUvczIb1T8JCJB6nFyWELQGJb449aNjN8R2uyuzzPmyMqQb3ZWJHMHFTw==.#=qgfsbu9Zc3b1LAFHgAGQqIw==(CandleSeries #=q0ynP8uDK8OYctUUd_SUe2w==, #=qzZyZNGCQcmxeIONO8_wXww== #=q3tKQ5Tzq3y5ORZ5Ecsij3Q==)
   at System.Action`2.Invoke(T1 arg1, T2 arg2)
   at Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 handler, T1 arg1, T2 arg2)
   at StockSharp.Algo.Candles.Compression.CandleBuilder`1.RaiseProcessing(CandleSeries series, Candle candle)
Thanks:

Валентин Лебедев

Avatar
Date: 7/11/2014
Reply


Скомпилируй под 64 бита.
Thanks: devruss

devruss

Avatar
Date: 7/12/2014
Reply


viosee
Скомпилируй под 64 бита.


Супер, как это сделать?=))
Thanks:

Валентин Лебедев

Avatar
Date: 7/12/2014
Reply


В свойствах проекта раздел Build и там Platform Target - x64.
Thanks: devruss

devruss

Avatar
Date: 7/12/2014
Reply


viosee
В свойствах проекта раздел Build и там Platform Target - x64.


Ок, сейчас попробую...

Пока что, уже 5 раз подряд вылетает этот exception:
Code

   at System.Windows.Data.Binding.set_Source(Object value)
   at Xceed.Wpf.Toolkit.PropertyGrid.ObjectContainerHelperBase.SetupDefinitionBinding[T](PropertyItem propertyItem, DependencyProperty itemProperty, DescriptorPropertyDefinitionBase pd, Expression`1 definitionProperty, BindingMode bindingMode)
   at Xceed.Wpf.Toolkit.PropertyGrid.ObjectContainerHelperBase.InitializePropertyItem(PropertyItem propertyItem)
   at Xceed.Wpf.Toolkit.PropertyGrid.ObjectContainerHelperBase.RegenerateProperties()
   at Xceed.Wpf.Toolkit.PropertyGrid.ObjectContainerHelperBase.GenerateProperties()
   at Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid.UpdateContainerHelper()
   at Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid.OnSelectedObjectChanged(Object oldValue, Object newValue)
   at StockSharp.Xaml.PropertyGrid.PropertyGridEx.OnSelectedObjectChanged(Object oldValue, Object newValue)
   at Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid.OnSelectedObjectChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
   at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.Activate(Object item)
   at System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
   at System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.AttachToContext(Boolean lastChance)
   at MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
   at MS.Internal.Data.DataBindEngine.Run(Object arg)
   at MS.Internal.Data.DataBindEngine.OnLayoutUpdated(Object sender, EventArgs e)
   at System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
   at System.Windows.ContextLayoutManager.UpdateLayout()
   at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
   at System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
   at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
   at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   at System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object resizedCompositionTarget)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at ...\obj\Debug\App.g.cs:line 0
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()


Памяти дофига, трейдинговые системы не запущены - все ресурсы компа только для бэктестинга....
Thanks:

Mikhail Sukhov

Avatar
Date: 7/12/2014
Reply


devruss
viosee
В свойствах проекта раздел Build и там Platform Target - x64.


Ок, сейчас попробую...

Пока что, уже 5 раз подряд вылетает этот exception:


Лог обрезан. Не вижно само сообщение, что именно за ошибка.
Thanks:

devruss

Avatar
Date: 7/12/2014
Reply


Михаил Сухов
devruss
viosee
В свойствах проекта раздел Build и там Platform Target - x64.


Ок, сейчас попробую...

Пока что, уже 5 раз подряд вылетает этот exception:


Лог обрезан. Не вижно само сообщение, что именно за ошибка.


Вроде копировал полный лог....

Quote:
Скомпилируй под 64 бита.

Спасибо, помогло!
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy