Скорость вывода данных


Скорость вывода данных
Atom
5/28/2010


Добрый день, Михаил!
Сколько не бился над проблемой, но при эскпорте "все сделки" все время
начинается замедление поступления данных из квика. Причем чем больше
времени проходит - тем больше оставание - сегодня за 3 часа отставание
достигло аж 30 минут! Перепробовал разные способы. И в S#1.8 и в
S#2.0 ситуация одинковая. В конце концов до предела отфильтровал
данные всех сделок в квике - стал получать только даныне по фьючерсам.
Только тогда скорость вроде бы нормализовалась. А до этого во "всех
сделках" были действиетльно "все сделки".
Заметил также, что во время вечерней сессии скорость обработки и
отрисовки нормальная - т.е. фактически после завершения торговли
акциями = уменьшения постуающей информации.
Получается, что для системы есть какой-то предел количества
поступающей информации?

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 5/31/2010
Reply


Для того, чтобы точно убедиться в чем проблема, попробуйте перестать
отрисовывать (кстати что именно). Например, просто выводить сигнал о
данных в консоль. Например, как сделано здесь

http://groups.google.ru/group/stocksharp/browse_thread/thread/b68f5d9bc2134b48


Thanks:

ddd888

Avatar
Date: 5/31/2010
Reply


Да, так и сделаю. Создал отдельный проект с классом вывода данных в
консоль:
_trader.NewTrades += trades => Console.WriteLine(trades.Max
(c=>c.Time).ToString ())

Поскольку уже вечер и сделок мало, то сейчас данные идут нормально.
Завтра потестю во время основных торгов.

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


С учетом того, что QuikTrader всасывает все данные за сессию (а
следовательно, вечерка должна иметь больше данных, чем дневная), уже
уменьшает вероятность ошибки в S#. Но тест конечно провести нужно.
Возможно проблема не с памятью, а с производительностью.

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


С производительностью компьютера? Похоже на это. Сегодня я с утра веду
тестирование. В таблицу "все сделки" специально по такому случаю
загнал все бумаги, что дает квик. Результаты следующие: в целом,
задержки с выводом в консоль практически нет - максимум отставание
составляет 5 сек, но обычно - 1-2 сек. (Могу выложить скринскан).
Правда, где-то в середине дня заметил отставание в 10 минут (после
того как таблицу загрузил по максимуму), но потом оно само собой куда-
то исчезло. Единственно что смущает - это отставание то возникает, то
пропадает почти полностью. Надо делать какой-то вывод, а он
напрашивается такой, что в моем "сампле" основное время "воруется"
GUI? А как же без него совсем обойтись - писать все настройки через
код? :)....

В целях этого же теста еще попытался вывести паралелльно котировки
"стакана" таким образом:

_test.somesec = (Security)_test._trader.Securities.Where(q => q.Code
== "RIM0").LastOrDefault();
_test._trader.RegisterQuotes(_test.somesec);

но последняя строка выдала исключение: "в экземпляре объекта нет
ссылки на объект". Хотя через отладку _test.somesec был вполне
"загружен" данными. Про какой объект тогда говорит исключение?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


1. Попроьбуйте выключить вообще все окна. Чтобы в них данные не
добавлялись на отображение.
2. NullReferenceException говорит о том, что _test равен null. А то
что Вы подумали, называется ArgumentNullException.

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


1. Выключить окна в квике? Или вообще в среде? В самой программе
только консоль включается.
2. Он исключение мне по-русски выдает. Хотя я бы все равно, конечно,
разницы не понял. Спасибо за подсказку. :)

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


У Вас уже обычная консоль или все таки WPF?

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


Да, тест я сделал в обычной консоли без всяких WPF. Сейчас работает и
задержек нет. Но правда уже вечер. И правда, стакан что-то не
получается там туда отобразить. Куда этот экземпляр объекта девается,
не пойму?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/1/2010
Reply


И Вы говорите на консоли начинает подтормаживать днем?

Thanks:

ddd888

Avatar
Date: 6/1/2010
Reply


Да, у меня сегодня в среднем было - 1-2 сек. И это то, что видно чисто
визуально. А иногда быаает так - в какой-то момент заметил, что квик
сам не всегда стабильно выдает данные - иногда он сам как бы
тормозится, а потом за раз выдает то, что задержал на какое-то время -
в этот момент, по-моему, и происходит основное "торможение" в
QuikTrader. Сейчас визуально задержек не видно, но я добавил функцию
вычисления разницы между текущим временем и временем последней сделки
в миллисекундах. Интересно, что разброс выдается от 60 мс до 900 мс.

Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy