#23430 - Thu Mar 17 2011 11:35 AM
Нехватка памяти (Out of memory)
|
Carpal Tunnel
Registered: Thu Oct 23 2008
Записи: 5492
|
При оптимизации и торговле может возникать такая ошибка, особенно если оптимизировать длинные (сотни тысяч баров) истории. Причем такая ошибка возникает даже на компьютерах с большим количеством оперативной памяти. Это связано с тем, что в 32бит версии максимальный объем памяти доступный процессу - 2гб. В реальности этот объем еще меньше, из-за явления называемого фрагментация памяти. Обычно ошибка начинает появлятся после выделения 1.1-1.2гб. Чтобы задействовать больше памяти и оптимизировать на больших историях нужно переходить на 64бит версию программы. В ней нет никаких ограничений по памяти и эта ошибка не появляется. Однако в 64бит версии нельзя подключиться к серверам брокеров, т.к. они предоставляют свои API, работающие только в 32бит. Исключение, на текущий момент, составляют брокеры Алор и РикомТраст. Коннекторы к этим брокерам работают в 64бит версии без ограничений. Коннекторы Финам, Смартком и Нетинвестор позволяют только пользоваться накопленным кешем данных без подключения к серверу. Возникновение такой ошибки в windows во время торговли, может привести к неизвестным заявкам, сделкам, порче базы данных сделок/заявок. Настоятельно рекомендуется для скриптов, которые настроены на торговлю ограничивать МаксБаров. В программе открывать небольшое количество окон, использовать 64битную версию программы.
|
Наверх
|
|
|
|
#24233 - Sun Mar 27 2011 06:42 PM
Re: Нехватка памяти (Out of memory)
[Re: Nektodron]
|
stranger
Registered: Sun Mar 27 2011
Записи: 1
|
Приветствую. Имею такую проблему сейчас. Есть сервер с 12 гб оперативной памяти, работающий под управлением ОС widows Server 2003 R2 64 бит. Запускаю оптимизацию, через некоторое время вылетает, вот кусок лога: 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)
|
Наверх
|
|
|
|
#36449 - Wed Jan 25 2012 12:23 PM
Re: Нехватка памяти (Out of memory)
[Re: Nektodron]
|
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]
|
TSLab
veteran
Registered: Mon Feb 16 2009
Записи: 1370
|
Если система 64 - она у Вас уже стоит. Посмотрите в программах в папке TSLab ярлык TSLab64
|
Наверх
|
|
|
|
#36451 - Wed Jan 25 2012 12:32 PM
Re: Нехватка памяти (Out of memory)
[Re: ZSE]
|
journeyman
Registered: Thu Jan 19 2012
Записи: 67
|
|
Наверх
|
|
|
|
#36469 - Wed Jan 25 2012 03:03 PM
Re: Нехватка памяти (Out of memory)
[Re: Avgust2047]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
Если использовать 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]
|
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)
|
Наверх
|
|
|
|
#42972 - Sun Jun 17 2012 11:51 AM
Re: Нехватка памяти (Out of memory)
[Re: ViL]
|
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]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
при запуске написанного скрипта выскакивает такое сообщение. в чем ошибка если можно? :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]
|
stranger
Registered: Tue Feb 19 2013
Записи: 2
|
А можно более точную рекомендацию по решению? Ситуация: 2 компа на одном 2 гига, на другом 500 мегов оперативки. Первый так и сыпет мессагами "OutOfMemory" Второй тормозит, но зато всё считает... Может настройки системы поковырять какие?
|
Наверх
|
|
|
|
#52489 - Wed Feb 20 2013 05:42 AM
Re: Нехватка памяти (Out of memory)
[Re: ViL]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет.
_________________________
__
|
Наверх
|
|
|
|
#52550 - Thu Feb 21 2013 10:26 PM
Re: Нехватка памяти (Out of memory)
[Re: ra81]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет. Про 500 метров не согласен. У меня комп есть у него 500 метров, тслаб работает очень стабильно. Оптимизация долгая, но работает очень стабильно. Главное здесь не показатели системы, а подход. Например в данном случае можно взять историю, один прогон которой в оптимизаторе не заполнит 250мб. Кеш - 0 естественно.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#52749 - Wed Feb 27 2013 08:56 PM
Re: Нехватка памяти (Out of memory)
[Re: 777]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет. Про 500 метров не согласен. У меня комп есть у него 500 метров, тслаб работает очень стабильно. Оптимизация долгая, но работает очень стабильно. Главное здесь не показатели системы, а подход. Например в данном случае можно взять историю, один прогон которой в оптимизаторе не заполнит 250мб. Кеш - 0 естественно. Ну я видел как люди на 128 работали в ХР, но это не работа а извращение. Завести ТСЛаб и бота на нем с 500 еще можно, но что-то делать??? Это тока нервы себе портить. Когда я был школьником память стоила очень дорого, приходилось ужиматься. Сейчас память стоит гроши. Купить пару гигов лишних может каждый. Не поставите память, купите новый винт в итоге, все равно винда туда кэшироваться будет и задолбит его.
_________________________
__
|
Наверх
|
|
|
|
#52752 - Thu Feb 28 2013 12:36 AM
Re: Нехватка памяти (Out of memory)
[Re: ra81]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Если вы работаете со свечами меньше минуты, 2 гига это мало. Наращивайте. 500 это вообще кошкины слезы, на этом только систему запустить можно и то тормозить будет. Про 500 метров не согласен. У меня комп есть у него 500 метров, тслаб работает очень стабильно. Оптимизация долгая, но работает очень стабильно. Главное здесь не показатели системы, а подход. Например в данном случае можно взять историю, один прогон которой в оптимизаторе не заполнит 250мб. Кеш - 0 естественно. Ну я видел как люди на 128 работали в ХР, но это не работа а извращение. Завести ТСЛаб и бота на нем с 500 еще можно, но что-то делать??? Это тока нервы себе портить. Когда я был школьником память стоила очень дорого, приходилось ужиматься. Сейчас память стоит гроши. Купить пару гигов лишних может каждый. Не поставите память, купите новый винт в итоге, все равно винда туда кэшироваться будет и задолбит его. Когда я был школьником, домашние компы были в сказках. Комп этот пережил два новейших ноутбука и один сервер. Так-что, нет. При правильном подходе к хорошей технике, она не только считает, но и живет долго.
Отредактировано 777 (Thu Feb 28 2013 12:36 AM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#52753 - Thu Feb 28 2013 01:04 AM
Re: Нехватка памяти (Out of memory)
[Re: 777]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Но с доступной памятью ТСЛаб всеже как-то уж очень неоптимально работает, особенно это заметно на таймфреймах которые по тикам строятся. Увы, боюсь, это издержки архитектуры программы. Вот, после нескольких суток работы: В Квике открыты десятки графиков, таблица всех сделок и таблица истории. В Нинзе (который тоже под .net написан) тоже дофига сколько всего открыто. Все стабильно работает. А в ТСЛабе всего несколько скриптов и 3 графика.
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#52763 - Thu Feb 28 2013 03:00 PM
Re: Нехватка памяти (Out of memory)
[Re: jhgjrht]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
Но с доступной памятью ТСЛаб всеже как-то уж очень неоптимально работает, особенно это заметно на таймфреймах которые по тикам строятся. Увы, боюсь, это издержки архитектуры программы. Вот, после нескольких суток работы: В Квике открыты десятки графиков, таблица всех сделок и таблица истории. В Нинзе (который тоже под .net написан) тоже дофига сколько всего открыто. Все стабильно работает. А в ТСЛабе всего несколько скриптов и 3 графика. Как я уточнил, проблем в .Net. При определенных условиях фрагментация памяти пожирает доступное пространство. У меня доходило до 3-4 гб.
_________________________
__
|
Наверх
|
|
|
|
#52783 - Thu Feb 28 2013 07:28 PM
Re: Нехватка памяти (Out of memory)
[Re: ra81]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Согласен, что проблема с фрагментацией памяти имеется, но ведь я не просто так Нинзю в пример привел. Также как и ТСЛаб это приложение написано для .net и тоже использует в работе большие объемы данных, но при этом весьма умеренно в расходах памяти. Очевидно, разница в подходе к работе с массивами данных, в архитектуре приложения.
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#52791 - Fri Mar 01 2013 12:12 AM
Re: Нехватка памяти (Out of memory)
[Re: jhgjrht]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Ниндзя хороший пример для подражания. Но есть большое НО. Если нужны только графики, в ТСЛаб есть графики, открывайте их сколько угодно и будет летать, как ниндзя )). А вот точно такой же скрипт, как один из графиков, уже даст нагрузку. Так как запускается пересчет.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#52795 - Fri Mar 01 2013 09:25 AM
Re: Нехватка памяти (Out of memory)
[Re: 777]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
Ниндзя хороший пример для подражания. Но есть большое НО. Если нужны только графики, в ТСЛаб есть графики, открывайте их сколько угодно и будет летать, как ниндзя )). А вот точно такой же скрипт, как один из графиков, уже даст нагрузку. Так как запускается пересчет.
Неправда. Графики как раз отлично создают фрагментацию. У меня на 3 графика собственно и поедало 3-4 Гб.
_________________________
__
|
Наверх
|
|
|
|
#52796 - Fri Mar 01 2013 09:50 AM
Re: Нехватка памяти (Out of memory)
[Re: ra81]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
? Попробуйте еще раз.
Отредактировано 777 (Fri Mar 01 2013 09:51 AM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#52797 - Fri Mar 01 2013 10:42 AM
Re: Нехватка памяти (Out of memory)
[Re: 777]
|
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]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
? Попробуйте еще раз. Подтверждение выше .
_________________________
__
|
Наверх
|
|
|
|
|
|