Утекает память

Автор: jhgjrht

Утекает память - Wed Dec 19 2012 11:34 AM

Возможно память утекает.
Автор: Nektodron

Re: Утекает память - Wed Dec 19 2012 02:21 PM

А можете описать, что именно делаете?
Автор: jhgjrht

Re: Утекает память - Wed Dec 19 2012 02:54 PM

Да, вроде, ничего особенного не делаю. Простой тестовый скрипт на секундах. Запущен как агент, сделок не совершает, только индикаторы рисует. Через полчаса его работы память для программы заканчивается, с последующим вылетом программы. После перезапуска, выделенная память около 400мб, через полчаса снова 1,5гб.
Сейчас попробовал совсем простой скрипт со стандартными индикаторами, вроде память не растет. Непонятно. Поэкспериментирую еще, может что и выяснится.
Автор: Nektodron

Re: Утекает память - Thu Dec 20 2012 09:24 AM

Если в скрипте много свечей, то нужно ставить ограничение по максимуму. Это связано с работой сборщика мусора в NET, он не может собрать большие объекты и память фрагментируется. На секундах это происходит очень быстро. В программу вставлена защита, уменьшающая этот процесс, но она его именно замедляет, не более того. Поэтому при частых обновлениях данных, где больше 15тыщ свечей обязательно нужно ограничение на количество.
Автор: jhgjrht

Re: Утекает память - Thu Dec 20 2012 01:12 PM

На первый взгляд кажется, что собрать мусор после окончания работы каждого скрипта является неплохой идеей. Ваша защита от фрагментации - это нечто подобное или какой-то "рокет-саенс"? )
Автор: Nektodron

Re: Утекает память - Thu Dec 20 2012 01:33 PM

Защита из себя представляет просто выделение памяти кратно определенному значению, например, вместо 25422 свечей - 25500. Т.е. какое-то время новые блоки будут попадать в те же сегменты "кучи". Но при дальнейшем росте будет все равно сделан новый сегмент.