Утечка памяти
Atom Ответить
06.02.2012


При запуске EmulationTrader на сохраненных из квика тиках приложение потребляет очень много памяти, даже без генерации свечек и тестирования стратегии. Следующий код потребляет на пике более 800 мб, при этом после его завершения объем выделенной памяти остается на уровне около 500 мб. Если подключить генерацию свечек, то памяти моего ПК не хватает на тестирование. Подскажите, где копать?

Код

var storage = new TradingStorage(new InMemoryStorage())
			{
				BasePath = @"K:\ТРЭЙДИНГ\Данные из квика",
			};

			var startTime = ((DateTime)this.datePicker1.SelectedDate).Date;
			var stopTime = ((DateTime)this.datePicker2.SelectedDate).Date + new TimeSpan(18, 55, 0);
			
			var securitybase = (Security)this.cb_sec.SelectedItem;

			var security = new Security
			{
				Id = securitybase.Id,
				Class = securitybase.Class,
				Code = securitybase.Code,
				MinStepSize = securitybase.MinStepSize,
				Decimals = securitybase.Decimals,
				Exchange = securitybase.Exchange,
			};

			// тестовый портфель
			var portfolio = new Portfolio { Name = "test account" };

			var trader = new EmulationTrader(
					new[] { security },
					new[] { portfolio },
					storage)
			{
				// параметр влияет на занимаемую память.
				// в случае достаточно количества памяти на компьютере рекомендуется его увеличить
				DaysInMemory = 1,
				MarketTimeChangedInterval = TimeSpan.FromHours(1),
				Storage = storage,
				WorkingTime = Exchange.Rts.WorkingTime
			};


			trader.Connect();
			trader.StartExport();
			trader.Start(startTime, stopTime);



Спасибо:




3 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 07.02.2012
Ответить


InsiderHSE Перейти
Следующий код потребляет на пике более 800 мб, при этом после его завершения объем выделенной памяти остается на уровне около 500 мб.


Версия? Протестировать на этом коде как есть, без каких либо стратегий?

Тестер кушает памяти очень много. Со стаканами еще больше.
Спасибо:

Church

Фотография
Дата: 07.02.2012
Ответить


Да, для работы с тиками хотя бы за год мне пришлось воткнуть 16гб.
И все же, я думаю, для тех кто тестирует страты в S# пригодилась бы команда эмулятору dispose'ить трейды, из которых уже сформированы свечки.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 07.02.2012
Ответить


Church Перейти
Да, для работы с тиками хотя бы за год мне пришлось воткнуть 16гб.
И все же, я думаю, для тех кто тестирует страты в S# пригодилась бы команда эмулятору dispose'ить трейды, из которых уже сформированы свечки.


Тики сейчас (в 4.0) даже нигде не сохраняются, кроме Candle Container, из которого тики периодически удаляются. В самом EmulationTrader кэшируется разве что заявки и сделки, но это суммарно копейки.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy