У вас не стоит Flash Player
Page 1 of 2 1 2 >
Настройки
#23430 - Thu Mar 17 2011 11:35 AM Нехватка памяти (Out of memory)
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
При оптимизации и торговле может возникать такая ошибка, особенно если оптимизировать длинные (сотни тысяч баров) истории.
Причем такая ошибка возникает даже на компьютерах с большим количеством оперативной памяти. Это связано с тем, что в 32бит версии максимальный объем памяти доступный процессу - 2гб. В реальности этот объем еще меньше, из-за явления называемого фрагментация памяти. Обычно ошибка начинает появлятся после выделения 1.1-1.2гб.
Чтобы задействовать больше памяти и оптимизировать на больших историях нужно переходить на 64бит версию программы. В ней нет никаких ограничений по памяти и эта ошибка не появляется.
Однако в 64бит версии нельзя подключиться к серверам брокеров, т.к. они предоставляют свои API, работающие только в 32бит. Исключение, на текущий момент, составляют брокеры Алор и РикомТраст. Коннекторы к этим брокерам работают в 64бит версии без ограничений. Коннекторы Финам, Смартком и Нетинвестор позволяют только пользоваться накопленным кешем данных без подключения к серверу.
Возникновение такой ошибки в windows во время торговли, может привести к неизвестным заявкам, сделкам, порче базы данных сделок/заявок. Настоятельно рекомендуется для скриптов, которые настроены на торговлю ограничивать МаксБаров. В программе открывать небольшое количество окон, использовать 64битную версию программы.

Наверх
#23432 - Thu Mar 17 2011 11:42 AM Re: Нехватка памяти (Out of memory) [Re: Nektodron]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Небольшое уточнение про 64бит версию. Для работы 64бит версии необходима ОС 64бит. При запуске 64бит версии в 32бит ОС она будет работать как обычно, т.е. как 32бит версия.

Наверх
#24233 - Sun Mar 27 2011 06:42 PM Re: Нехватка памяти (Out of memory) [Re: Nektodron]
geef Offline
stranger

Registered: Sun Mar 27 2011
Записи: 1
Приветствую.
Имею такую проблему сейчас. Есть сервер с 12 гб оперативной памяти, работающий под управлением ОС widows Server 2003 R2 64 бит. Запускаю оптимизацию, через некоторое время вылетает, вот кусок лога:
Click to reveal..

18:36:54.93[1]ERROR:Main():
System.OutOfMemoryException: Выдано исключение типа "System.OutOfMemoryException".
в System.Windows.Controls.TextBlock.GetLineProperties()
в System.Windows.Controls.TextBlock.GetLineProperties(Boolean firstLine, Boolean showParagraphEllipsis, LineProperties lineProperties)
в System.Windows.Controls.TextBlock.MeasureOverride(Size constraint)
в System.Windows.FrameworkElement.MeasureCore(Size availableSize)
в System.Windows.UIElement.Measure(Size availableSize)
в System.Windows.ContextLayoutManager.UpdateLayout()
в System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
в System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
в System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
в System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
в System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
18:36:55.57[26]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.OrderedEnumerable`1.GetEnumerator()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:55.57[26]INFO :120:Error:Script::System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.OrderedEnumerable`1.GetEnumerator()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:55.57[26]INFO :System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.OrderedEnumerable`1.GetEnumerator()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:55.90[23]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.OrderByDescending[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:55.90[23]INFO :120:Error:Script::System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.OrderByDescending[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:55.90[23]INFO :System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.OrderByDescending[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:56.53[30]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.ScriptEngine.PositionsList.MakePosition(String signalName, Boolean isLong, Int32 bar, Double price, Double shares, OrderType orderType, Boolean fixPrice)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:56.53[30]INFO :120:Error:Script::System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.ScriptEngine.PositionsList.MakePosition(String signalName, Boolean isLong, Int32 bar, Double price, Double shares, OrderType orderType, Boolean fixPrice)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:56.53[30]INFO :System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.ScriptEngine.PositionsList.MakePosition(String signalName, Boolean isLong, Int32 bar, Double price, Double shares, OrderType orderType, Boolean fixPrice)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:56.89[30]ERROR:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.DataModel.Settings.GrouppedSettings.Get[T]()
at TSLab.DataModel.AppSettingsManager.Get[T]()
at TSLab.LabView.Script.ScriptDataManager.State.LockCalculation()
at TSLab.LabView.Script.ScriptDataManager.State.Dispose()
at TSLab.ScriptEngine.Optimization.ExecuteOneStep()
18:36:57.56[24]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:57.56[5]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Collections.Generic.List`1.set_Capacity(Int32 value)
at System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List`1.Add(T item)
at TSLab.ScriptEngine.PositionsList.Add(Position item)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:57.56[24]INFO :120:Error:Script::System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:57.56[24]INFO :System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:57.56[5]INFO :120:Error:Script::System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Collections.Generic.List`1.set_Capacity(Int32 value)
at System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List`1.Add(T item)
at TSLab.ScriptEngine.PositionsList.Add(Position item)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:57.56[5]INFO :System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Collections.Generic.List`1.set_Capacity(Int32 value)
at System.Collections.Generic.List`1.EnsureCapacity(Int32 min)
at System.Collections.Generic.List`1.Add(T item)
at TSLab.ScriptEngine.PositionsList.Add(Position item)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:58.62[17]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.OrderByDescending[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:58.62[17]INFO :120:Error:Script::System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.OrderByDescending[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:58.62[17]INFO :System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.Enumerable.OrderByDescending[TSource,TKey](IEnumerable`1 source, Func`2 keySelector)
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:36:59.00[1]ERROR:Main():
System.OutOfMemoryException: Выдано исключение типа "System.OutOfMemoryException".
в System.Threading.SynchronizationContext.SetWaitNotificationRequired()
в System.Windows.Threading.DispatcherSynchronizationContext..ctor(Dispatcher dispatcher)
в System.Windows.Threading.DispatcherOperation.InvokeImpl()
в System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Windows.Threading.DispatcherOperation.Invoke()
в System.Windows.Threading.Dispatcher.ProcessQueue()
в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
18:36:59.92[22]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.ScriptEngine.PositionsList.MakePosition(String signalName, Boolean isLong, Int32 bar, Double price, Double shares, OrderType orderType, Boolean fixPrice)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:37:14.00[5]DEBUG:<log4net.Error>Exception rendering object type [System.OutOfMemoryException]<stackTrace></stackTrace></log4net.Error>
18:37:14.96[31]ERROR:Main():
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Threading.ExecutionContext.CreateCopy()
at System.Threading._TimerCallback.PerformTimerCallback(Object state)
18:37:14.96[25]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.ScriptEngine.PositionsList.MakePosition(String signalName, Boolean isLong, Int32 bar, Double price, Double shares, OrderType orderType, Boolean fixPrice)
at TSLab.ScriptEngine.PositionsList.BuyAtMarket(Int32 barNum, Double shares, String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:37:16.59[14]ERROR:Main():
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Threading.ExecutionContext.CreateCopy()
at System.Threading._TimerCallback.PerformTimerCallback(Object state)
18:37:17.59[17]DEBUG:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at TSLab.ScriptEngine.PositionsList.<.ctor>b__6(String signalName)
at TSLab.ScriptEngine.PositionsList.ByNameCache.Get(String signalName)
at TSLab.ScriptEngine.PositionsList.GetLastActiveForSignal(String signalName)
at TSLab.User.Script.Execute(IContext context, ISecurity Source1)
18:37:19.50[1]ERROR:Main():
<log4net.Error>Exception rendering object type [System.OutOfMemoryException]<stackTrace></stackTrace></log4net.Error>
18:37:19.53[26]ERROR:System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count)
at TSLab.ScriptEngine.OptimizationResult..ctor(IRuntime2 runtime, IEnumerable`1 props)
at TSLab.ScriptEngine.Optimization.ExecuteOneStep()
18:37:23.65[28]ERROR:Main():
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Threading.ExecutionContext.CreateCopy()
at System.Threading._TimerCallback.PerformTimerCallback(Object state)
18:37:24.00[24]DEBUG:18:37:28.40[12]ERROR:Main():
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Threading.ExecutionContext.CreateCopy()
at System.Threading._TimerCallback.PerformTimerCallback(Object state)

На этом процесс вылетел. Во время работы вел мониторинг производительности системы, из 12гб доступной оперативной памяти использовалось 1.5гб.
Подскажите пожалуйста как бороться с проблемой.
Заранее благодарю.


Отредактировано ViL (Thu Apr 28 2011 12:14 AM)

Наверх
#24260 - Mon Mar 28 2011 12:23 PM Re: Нехватка памяти (Out of memory) [Re: geef]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
То что у вас 64бит версия ОС, не означает, что программа автоматом запускается в 64бит режиме. Нужно принудительно запускать 64бит версию.

Наверх
#36449 - Wed Jan 25 2012 12:23 PM Re: Нехватка памяти (Out of memory) [Re: Nektodron]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
У меня 64бит ОС, Брокер Алор, где взять 64бит программу?
если можно ссылку.. на сайте не нашел..только недавно скачивал обновление 1.1.23.0 (32бит)
Спасибо!

Наверх
#36450 - Wed Jan 25 2012 12:28 PM Re: Нехватка памяти (Out of memory) [Re: Avgust2047]
ZSE Offline
TSLab
veteran

Registered: Mon Feb 16 2009
Записи: 1366
Если система 64 - она у Вас уже стоит.
Посмотрите в программах в папке TSLab ярлык TSLab64

Наверх
#36451 - Wed Jan 25 2012 12:32 PM Re: Нехватка памяти (Out of memory) [Re: ZSE]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
Спасибо..нашел))

Наверх
#36452 - Wed Jan 25 2012 12:35 PM Re: Нехватка памяти (Out of memory) [Re: Avgust2047]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
Мне тут сказали что кеш лучше уменьшить..это зачем/почему?
(информация для понимания и внутреннего роста)

http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=36437#Post36437

Наверх
#36469 - Wed Jan 25 2012 03:03 PM Re: Нехватка памяти (Out of memory) [Re: Avgust2047]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8135
Originally Posted By: Avgust2047
Мне тут сказали что кеш лучше уменьшить..это зачем/почему?
(информация для понимания и внутреннего роста)

http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=36437#Post36437

Если использовать 64бит, то уменьшать не обязательно.
Если 32бит - уменьшать нужно из-за сборщика мусора. И из-за того, что в 32бит ОС windows ограничивает оперативную память до 2гб для языков NET(в реальности из-за фрагментации этот объем состовляет 1гб для одного процесса).


Отредактировано ViL (Wed Jan 25 2012 03:07 PM)

Наверх
#36562 - Fri Jan 27 2012 05:16 AM Re: Нехватка памяти (Out of memory) [Re: ViL]
Avgust2047 Offline
journeyman

Registered: Thu Jan 19 2012
Записи: 67
Спасибо!!!

Подскажите что значит сие ругательство..я так понимаю что в логике скрипта что-то? но что именно???

05:03:46.48 System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
в System.ThrowHelper.ThrowArgumentOutOfRangeException()
в System.SZArrayHelper.get_Item[T](Int32 index)
в TSLab.User.Script.Execute(IContext context, ISecurity var0)

Наверх
#36563 - Fri Jan 27 2012 06:32 AM Re: Нехватка памяти (Out of memory) [Re: Avgust2047]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8135
В логических формулах или/и формулах используется обращение к индексу. Например close[i-15] У блоков формула и Логическая формула есть параметр, "начинать с" он должен быть >= максимальному значению индекса. В данном примере "Начинать с" д.б. = 15

Наверх
#42972 - Sun Jun 17 2012 11:51 AM Re: Нехватка памяти (Out of memory) [Re: ViL]
alexander Offline
stranger

Registered: Mon Jul 19 2010
Записи: 18
при запуске написанного скрипта выскакивает такое сообщение. в чем ошибка если можно?
:44:46.63 120 Не могу запустить скрипт.
11:44:46.63 120 c:\Users\Александр\AppData\Local\TSLab\TSLab\temp\code24.cs(336,39) : error CS1002: ожидалась ;
11:44:46.63 120 c:\Users\Александр\AppData\Local\TSLab\TSLab\temp\code24.cs(285,39) : error CS1002: ожидалась ;
11:44:46.36 120 Не могу собрать скрипт.

Наверх
#42975 - Sun Jun 17 2012 03:03 PM Re: Нехватка памяти (Out of memory) [Re: alexander]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8135
Originally Posted By: alexander
при запуске написанного скрипта выскакивает такое сообщение. в чем ошибка если можно?
:44:46.63 120 Не могу запустить скрипт.
11:44:46.63 120 c:\Users\Александр\AppData\Local\TSLab\TSLab\temp\code24.cs(336,39) : error CS1002: ожидалась ;
11:44:46.63 120 c:\Users\Александр\AppData\Local\TSLab\TSLab\temp\code24.cs(285,39) : error CS1002: ожидалась ;
11:44:46.36 120 Не могу собрать скрипт.

Причем здесь "Out of memory" ? В Вашем случае просто какая-то синтаксическая ошибка, нужно искать в скрипте.

Наверх
#52467 - Tue Feb 19 2013 04:46 PM Re: Нехватка памяти (Out of memory) [Re: ViL]
burger Offline
stranger

Registered: Tue Feb 19 2013
Записи: 2
А можно более точную рекомендацию по решению?
Ситуация: 2 компа на одном 2 гига, на другом 500 мегов
оперативки.
Первый так и сыпет мессагами "OutOfMemory"
Второй тормозит, но зато всё считает...
Может настройки системы поковырять какие?

Наверх
#52468 - Tue Feb 19 2013 04:53 PM Re: Нехватка памяти (Out of memory) [Re: burger]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8135
В программе - Файл - Настройки программы - Оптимизация скриптов - кеш для скриптов.
Если поставить 0, то будет считать долго, но без ошибок, если один прогон истории не занимает отведенной памяти.
Если поставить 1000 мб, то ошибки windows могут возникать, если процессор не успевает обработать историю.

Наверх
#52489 - Wed Feb 20 2013 05:42 AM Re: Нехватка памяти (Out of memory) [Re: ViL]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет.
_________________________
__


Наверх
#52550 - Thu Feb 21 2013 10:26 PM Re: Нехватка памяти (Out of memory) [Re: ra81]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: ra81
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет.

Про 500 метров не согласен. У меня комп есть у него 500 метров, тслаб работает очень стабильно. Оптимизация долгая, но работает очень стабильно. Главное здесь не показатели системы, а подход. Например в данном случае можно взять историю, один прогон которой в оптимизаторе не заполнит 250мб. Кеш - 0 естественно.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#52749 - Wed Feb 27 2013 08:56 PM Re: Нехватка памяти (Out of memory) [Re: 777]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: 777
Originally Posted By: ra81
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет.

Про 500 метров не согласен. У меня комп есть у него 500 метров, тслаб работает очень стабильно. Оптимизация долгая, но работает очень стабильно. Главное здесь не показатели системы, а подход. Например в данном случае можно взять историю, один прогон которой в оптимизаторе не заполнит 250мб. Кеш - 0 естественно.

Ну я видел как люди на 128 работали в ХР, но это не работа а извращение. Завести ТСЛаб и бота на нем с 500 еще можно, но что-то делать??? Это тока нервы себе портить.

Когда я был школьником память стоила очень дорого, приходилось ужиматься. Сейчас память стоит гроши. Купить пару гигов лишних может каждый. Не поставите память, купите новый винт в итоге, все равно винда туда кэшироваться будет и задолбит его.
_________________________
__


Наверх
#52752 - Thu Feb 28 2013 12:36 AM Re: Нехватка памяти (Out of memory) [Re: ra81]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: ra81
Originally Posted By: 777
Originally Posted By: ra81
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет.

Про 500 метров не согласен. У меня комп есть у него 500 метров, тслаб работает очень стабильно. Оптимизация долгая, но работает очень стабильно. Главное здесь не показатели системы, а подход. Например в данном случае можно взять историю, один прогон которой в оптимизаторе не заполнит 250мб. Кеш - 0 естественно.

Ну я видел как люди на 128 работали в ХР, но это не работа а извращение. Завести ТСЛаб и бота на нем с 500 еще можно, но что-то делать??? Это тока нервы себе портить.

Когда я был школьником память стоила очень дорого, приходилось ужиматься. Сейчас память стоит гроши. Купить пару гигов лишних может каждый. Не поставите память, купите новый винт в итоге, все равно винда туда кэшироваться будет и задолбит его.

Когда я был школьником, домашние компы были в сказках. Комп этот пережил два новейших ноутбука и один сервер. Так-что, нет. При правильном подходе к хорошей технике, она не только считает, но и живет долго. smile


Отредактировано 777 (Thu Feb 28 2013 12:36 AM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#52753 - Thu Feb 28 2013 01:04 AM Re: Нехватка памяти (Out of memory) [Re: 777]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Но с доступной памятью ТСЛаб всеже как-то уж очень неоптимально работает, особенно это заметно на таймфреймах которые по тикам строятся. Увы, боюсь, это издержки архитектуры программы. Вот, после нескольких суток работы:

В Квике открыты десятки графиков, таблица всех сделок и таблица истории. В Нинзе (который тоже под .net написан) тоже дофига сколько всего открыто. Все стабильно работает. А в ТСЛабе всего несколько скриптов и 3 графика.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#52763 - Thu Feb 28 2013 03:00 PM Re: Нехватка памяти (Out of memory) [Re: jhgjrht]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: jhgjrht
Но с доступной памятью ТСЛаб всеже как-то уж очень неоптимально работает, особенно это заметно на таймфреймах которые по тикам строятся. Увы, боюсь, это издержки архитектуры программы. Вот, после нескольких суток работы:

В Квике открыты десятки графиков, таблица всех сделок и таблица истории. В Нинзе (который тоже под .net написан) тоже дофига сколько всего открыто. Все стабильно работает. А в ТСЛабе всего несколько скриптов и 3 графика.

Как я уточнил, проблем в .Net. При определенных условиях фрагментация памяти пожирает доступное пространство. У меня доходило до 3-4 гб.
_________________________
__


Наверх
#52783 - Thu Feb 28 2013 07:28 PM Re: Нехватка памяти (Out of memory) [Re: ra81]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Согласен, что проблема с фрагментацией памяти имеется, но ведь я не просто так Нинзю в пример привел. Также как и ТСЛаб это приложение написано для .net и тоже использует в работе большие
объемы данных, но при этом весьма умеренно в расходах памяти. Очевидно, разница в подходе к работе с массивами данных, в архитектуре приложения.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#52791 - Fri Mar 01 2013 12:12 AM Re: Нехватка памяти (Out of memory) [Re: jhgjrht]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский

Ниндзя хороший пример для подражания.
Но есть большое НО. Если нужны только графики, в ТСЛаб есть графики, открывайте их сколько угодно и будет летать, как ниндзя )). А вот точно такой же скрипт, как один из графиков, уже даст нагрузку. Так как запускается пересчет.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#52795 - Fri Mar 01 2013 09:25 AM Re: Нехватка памяти (Out of memory) [Re: 777]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: 777

Ниндзя хороший пример для подражания.
Но есть большое НО. Если нужны только графики, в ТСЛаб есть графики, открывайте их сколько угодно и будет летать, как ниндзя )). А вот точно такой же скрипт, как один из графиков, уже даст нагрузку. Так как запускается пересчет.

Неправда. Графики как раз отлично создают фрагментацию. У меня на 3 графика собственно и поедало 3-4 Гб.
_________________________
__


Наверх
#52796 - Fri Mar 01 2013 09:50 AM Re: Нехватка памяти (Out of memory) [Re: ra81]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: ra81

Неправда... поедало..

?

Попробуйте еще раз. smile


Отредактировано 777 (Fri Mar 01 2013 09:51 AM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#52797 - Fri Mar 01 2013 10:42 AM Re: Нехватка памяти (Out of memory) [Re: 777]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Фрагментацию дают графики с количеством свечей больше 20тысяч и линии на графике от 10 тысяч свечей и не имеющие ограничений по количеству (т.е. имеющие постоянный рост, с появление новым данных). В этом случае создаваемые массивы не очищаются сборщиком мусора, и в случае когда размер массива постоянно растет в памяти образуются неиспользуемые "дыры". Бороться с этим можно только округляя размер массив с запасом. TSLab, по возможности, это и делает. Чем длиннее выведенный график, тем быстрее будет фрагментироваться память. Кроме того, TSLab не выгружает из памяти, уже загруженные данные, стараясь их кешировать (кроме тиков за прошлые дни).
В общем, можно много спорить, касательно оптимизации памяти, но это всегда потеря скорости расчетов. При современном развитии электронной промышленности стараться съэкономить каждый байт, просто не имеет смысла. Эти усилия того не стоят, скорость расчета важнее.
В общем, если соблюдать определенные рекомендации, а именно, не использовать длинные графики без ограничения количества свечей с обновлением, память будет утекать не так быстро. Если не использовать графики больше 10тыщ свечей, программа нормально работает в 512мб памяти, проверялось не один раз. Опять же, если используете Transaq, то память кушает их библиотека. В первых версиях это было до 500мб в день (отсда в программе появился ежедневный рестарт, т.к. мы ничег оне могли с этим поделать). Сейчас это 100-150мб в день.

Наверх
#52807 - Fri Mar 01 2013 04:38 PM Re: Нехватка памяти (Out of memory) [Re: 777]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: 777
Originally Posted By: ra81

Неправда... поедало..

?

Попробуйте еще раз. smile

Подтверждение выше smile.
_________________________
__


Наверх
Page 1 of 2 1 2 >


Moderator:  ViL, sar