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

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


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

Tags:


Thanks:


< 1 2 
Mikhail Sukhov

Avatar
Date: 6/2/2010
Reply


Я кое-что подкрутил. Сохраните проект. Когда выпушу новый билд 2.0 -
проверьте еще раз. Ок?

Thanks:

ddd888

Avatar
Date: 6/2/2010
Reply


Да, конечно! :) Когда ожидается новый билд?

Thanks:

ddd888

Avatar
Date: 6/8/2010
Reply


Пытаюсь теперь проверить все на последней версии 2.0.1. В моей версии
с GUI все вроде пошло очень шустро и в самый разгар наплыва информации
о торгах - после обеда. Теперь пытаюсь в консоле отследить время
появления сделок. Но начали появляться новые доселе неизвестные
ошибки:
- при запуске _trader.StartDde("инструменты") - появляется ошибка: "в
экземпляре объекта нет ссылки на объект", а просто _trader.StartDde()
- "Нет информации о главном окне Quik. Возможно, было неуспешное
подключение." Хотя окна, как я понимаю ведь не менялись? Функция
StartDde("инструменты") как-то изменилась?
Вручную, экспорт запускается нормально и все идет, но зачем так, если
есть программные методы? :)

"

Thanks:

ddd888

Avatar
Date: 6/8/2010
Reply


И еще вопрос. Для теста скорости вывода данных я добавил такой код для
экспорта стакана:

this.somesec = this._trader.Securities.Where(q => q.Code ==
"RIM0").LastOrDefault();
this._trader.RegisterQuotes(this.somesec);
var _marketDepth1 = this._trader.GetMarketDepth(this.somesec);
this.Quotes.AddRange(_marketDepth1.OrderByDescending(e =>
e.Price).Select( e => new SampleQuote
{
Price = e.Price,
Ask = e.OrderDirection ==
OrderDirections.Buy ? e.Volume.ToString() : "",
Bid = e.OrderDirection ==
OrderDirections.Sell ? e.Volume.ToString() : "",
}));
this._trader.GetMarketDepth(this.somesec).Changed += new
Action(TestSpeed_Changed);

Аналогичный код в другой программе на 1.8 у меня работал нормально, а
сейчас почему-то нет. Из квика экспорт стакана идет, а в прогрмму
ничего не приходит. Что тут может быть неправильно?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/8/2010
Reply


Запускать экспорт теперь нужно только после событие Connected
(например, в его обработчике). Я в SampleConsole показал это.

Thanks:

ddd888

Avatar
Date: 6/9/2010
Reply


Спасибо, попробую с Connected.

Запустил тест 2.0.1 после 18:00. Скорость хорошая, впрочем после 18
часов и на 1.8 была нормальная. Среднее время задержки 400-500 мс.
Общее количество загруженных сделок - больше 1 млн. Самое интересное
посмотрю завтра - как на максимальной загрузке себя поведет.

Thanks:

ddd888

Avatar
Date: 6/9/2010
Reply


Наблюдается очень хорошая скорость! Вы молодец, Михаил! :) Задержка
при максимуме информации в среднем не более 1-2 с. По-моему, это очень
хороший результат. В связи с этими тестами, заметил, что часто сам
Квик тормозит - оставание вывода информации может доходить до 5-10 с.
Но S#2.0.1 справляется вполне адекватно. Хочу еще проверить как
зависит производительность программы от количества одновременно
получаемой информации - потому что это явно влияет на скорость вывода:
во время вечерних торгов после 18 часов как я писал - запаздывание
0.4-0.5 с, в разгар сессии - 1-2 с. Пока только не придумал, как это
измерить.

Thanks:

ddd888

Avatar
Date: 6/10/2010
Reply


Что еще радует - в моем варианте со всевозможными GUI скорость
остается такой же высокой. Значит,раньше все-таки дело было не совсем
в отрисовке. =)

Thanks:
< 1 2 

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

loading
clippy