← Zurück

Скорость проведения тестов, 4.2.2.2

Господа! Камрады!

Сейчас мигрировал на версию библиотеки 4.2.2.2. Внёс правки, касаемые кода (кстати, в хелпе неплохо бы поменять trader на connector в примерах тестов, но не суть). Так, вот, код, работавший в 4.1.19.1 примерно 10-15 минут на 1 день тестов сейчас стал работать ну очень долго. Особых "новшеств" от себя не вносил - лишь такие:


                            trader.RegisterMarketDepth(new TrendMarketDepthGenerator(trader.GetSecurityId(security))
                            {
                                Interval = TimeSpan.FromMilliseconds(1),
                                MaxAsksDepth = 10,
                                MaxBidsDepth = 10,
                                UseTradeVolume = true,
                                MaxVolume = 10,
                                MinSpreadStepCount = 1,
                                MaxSpreadStepCount = 1,
                            });


                            var trader = new HistoryEmulationConnector(new[] { security }, new[] { portfolio })
                            {
                               StorageRegistry = storageRegistry,

                                MarketEmulator =
                                {
                                    Settings = { UseMarketDepth = true, SyncDepthToTrades = true, FillOnTouch = true, }
                                }
                            };


((MessageAdapter)trader.MarketDataAdapter).MarketTimeChangedInterval = TimeSpan.FromMilliseconds(1);

Подскажите, плз, 2 вещи.

  1. Я один такой неудачник или же у всех скорость снизилась?
  2. В чём сакральный смысл параметров Interval и MarketTimeChangedInterval?

Да, ещё памяти стало приложение кушать раз в 5-6 больше так. В какую сторону копать?

Заранее спасибо!

War dieses Thema hilfreich?

Thema teilen

Kommentare (5)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

AntonySS
AntonySS

Rebelion: Господа! Камрады!

Сейчас мигрировал на версию библиотеки 4.2.2.2. Внёс правки, касаемые кода (кстати, в хелпе неплохо бы поменять trader на connector в примерах тестов, но не суть). Так, вот, код, работавший в 4.1.19.1 примерно 10-15 минут на 1 день тестов сейчас стал работать ну очень долго. Особых "новшеств" от себя не вносил - лишь такие:

                        trader.RegisterMarketDepth(new TrendMarketDepthGenerator(trader.GetSecurityId(security))
                        {
                            Interval = TimeSpan.FromMilliseconds(1),
                            MaxAsksDepth = 10,
                            MaxBidsDepth = 10,
                            UseTradeVolume = true,
                            MaxVolume = 10,
                            MinSpreadStepCount = 1,
                            MaxSpreadStepCount = 1,
                        });
> 
> ```csharp

                            var trader = new HistoryEmulationConnector(new[] { security }, new[] { portfolio })
                            {
                               StorageRegistry = storageRegistry,

                                MarketEmulator =
                                {
                                    Settings = { UseMarketDepth = true, SyncDepthToTrades = true, FillOnTouch = true, }
                                }
                            };

((MessageAdapter)trader.MarketDataAdapter).MarketTimeChangedInterval = TimeSpan.FromMilliseconds(1);

> 
> Подскажите, плз, 2 вещи.
> 1. Я один такой неудачник или же у всех скорость снизилась?
> 2. В чём сакральный смысл параметров Interval и MarketTimeChangedInterval?
> 
> Да, ещё памяти стало приложение кушать раз в 5-6 больше так. В какую сторону копать?
> 
> Заранее спасибо!

Добрый вечер!

Нет, Вы не один такой

Также заметил снижение скорости тестирования и после Вашего поста решил провести сравнительный тест.

Запустил SampleHistoryTestingParallel версий 4.2.2.2 и 4.1.19.1 с тестированием на исторических данных идущих в комплекте с API.

Результаты получил следующие:
API 4.1.19.1 - тестирование заняло примерно 3мин, объем потребляемой памяти на конец теста - 1872Мб
API 4.2.2.2 - тестирование заняло примерно 13мин 30сек, объем потребляемой памяти на конец теста - 1760Мб

На счет сакрального смысла Interval и MarketTimeChangedInterval, то это думаю лучше к разработчикам🙂
Но как я понимаю, эти параметры эмулируют частоту обновления/поступления биржевых данных
Mikhail Sukhov
Mikhail Sukhov

AntonySS: Результаты получил следующие: API 4.1.19.1 - тестирование заняло примерно 3мин, объем потребляемой памяти на конец теста - 1872Мб API 4.2.2.2 - тестирование заняло примерно 13мин 30сек, объем потребляемой памяти на конец теста - 1760Мб

В следующей версии будет чуть исправлена ситуация со скоростью. Трассировщик показал, что самый медленный участок в примере - это генерация свечек. Как раз то, что не менялось пока вообще. Так что я не уверен насчет корректности замеров. Какие параметры были выставлены при тестировании?

AntonySS
AntonySS

Михаил Сухов:

AntonySS: Результаты получил следующие: API 4.1.19.1 - тестирование заняло примерно 3мин, объем потребляемой памяти на конец теста - 1872Мб API 4.2.2.2 - тестирование заняло примерно 13мин 30сек, объем потребляемой памяти на конец теста - 1760Мб

В следующей версии будет чуть исправлена ситуация со скоростью. Трассировщик показал, что самый медленный участок в примере - это генерация свечек. Как раз то, что не менялось пока вообще. Так что я не уверен насчет корректности замеров. Какие параметры были выставлены при тестировании?

Михаил,

Тестировал я на оригинальных SampleHistoryTestingParallel версий 4.1.19.1 и 4.2.2.2 с использованием оригинальных параметров, которые, насколько я могу судить, в обоих примерах идентичны. Сегодня повторил тесты и получил схожие результаты: API 4.1.19.1 - тестирование заняло примерно 3мин, объем потребляемой памяти на конец теста - 1832Мб API 4.2.2.2 - тестирование заняло примерно 13мин 20сек, объем потребляемой памяти на конец теста - 1590Мб

Длительность тестов я брал из окошка, которое появляется когда тест окончен ```csharp MessageBox.Show("Закончено за " + (DateTime.Now - _startEmulationTime))


Аналогичный тест для оригинальных SampleHistoryTesting с оригинальными параметрами, сразу на Тиках, Тиках + Стаканах, Свечах, Свечах + Стаканах дал следующие результаты:
API 4.1.19.1 - Потребление памяти 650Мб
Тики - 3мин 20сек
Тики+Стаканы - 7мин 45сек
Свечи - 10сек
Свечи+Стаканы - 10сек

API 4.2.2.2 - Потребление памяти 2890Мб
Тики - 12мин 20сек
Тики+Стаканы - 29мин 0сек
Свечи - 12мин 10сек
Свечи+Стаканы - 12мин 45сек

Возможно Samlpes в двух версиях все же разнятся где-то в настройках, чего я не заметил, но тем не менее протестированы оригинальные Samples без внесения собственного кода.
Bond
Bond

Михаил Сухов:

AntonySS: Результаты получил следующие: API 4.1.19.1 - тестирование заняло примерно 3мин, объем потребляемой памяти на конец теста - 1872Мб API 4.2.2.2 - тестирование заняло примерно 13мин 30сек, объем потребляемой памяти на конец теста - 1760Мб

В следующей версии будет чуть исправлена ситуация со скоростью. Трассировщик показал, что самый медленный участок в примере - это генерация свечек. Как раз то, что не менялось пока вообще. Так что я не уверен насчет корректности замеров. Какие параметры были выставлены при тестировании?

Михаил, если есть возможность хоть как-то ускорить тестирование, пожалуйста, используйте ее.

Aleksey24
Aleksey24

Попробуйте проверить кончилась ли лицензия, если да то обновите. Мне помогло.