Оперативная память
Atom Ответить
23.03.2012


Здравствуйте.
У меня проблема с возрастанием занимаемой оперативной памяти

при запуске программы, идет нагрузка на цп 90%, и объем оперативной памяти увеличивается с шагом 1-2 мб, при достижении примерно 125 мб, рост прекращается, и нагрузка на цп падает до 2%

я думаю это из-за полученния сделок, Quik наверное экспортирует все сделки за сеанс через dde при первоначальном подключении к нему
можно ли как-то фильтровать сделки, и выставить ограничение на максимальное колличество хранящихся сделок в боте?
либо при запуске получить не все данные, а последние N сделок

Теги:


Спасибо:




16 Ответов
Alexander

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


Можно - средствами квика, там есть фильтрация таблиц.
Спасибо:

art.tsgnet

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


А программно никак?
просто я выбираю инструмент, которым буду играть, и чтоб не лезть в квик и менять фильтрацию на другой инструмент, сделать это из бота
Автор топика
Спасибо:

Alexander

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


RegisterTrades
Спасибо: art.tsgnet

art.tsgnet

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


Спасибо)
Автор топика
Спасибо:

art.tsgnet

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


А в функции StartExport обязательно указывать TradesTable если я использую RegisterTrades?

а то котировки не хотят идти, если просто RegisterTrades вызвать
Автор топика
Спасибо:

Alexander

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


естественно обязательно. но registertrades вам просто фильтр в квике установит.
ещё раз говорю - проще самому в квике выставить.
Спасибо:

art.tsgnet

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


только он все ровно этот фильтр применяет после того как загрузит все сделки
Автор топика
Спасибо:

Alexander

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


Сделайте вначале RegisterTrades или настройте таблицу в квике.
Только после этого запустите робота и экспорт
Спасибо:

art.tsgnet

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


Не работает что-то
вот допустим я сделал фильтр в Quik, чтоб сделки в таблице были только по одной бумаге LKOH
все получает, строит график, потом я в программе(своей) меняю инструмент, и делаю trader.UnregisterTrades(lkoh) а потом trader.RegisterTrades(new_security)
а в quik в таблице сделок как шли LKOH так и идут

и как вы посоветовали, сначало RegisterTrades с инструментов интересующим, а потом StartExport тоже не хочет работать, получает все равно все сделки по всем инструментам
Автор топика
Спасибо:

Alexander

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


Протестировал у себя сейчас - работает.
Тестировал на 4.0.23 и 4.1
Спасибо:

art.tsgnet

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


значит буду искать у себя ошибку, у меня 4.0.21 версия

а есть ли возможность выгрузить данные о сделках неиспользуемых инструментов?
а то при первоначальной загрузке, если все сделки грузит, то занимает памяти ~150мб, а если по одной только бумаге сделки то 80 где-то, дак вот если я делаю Unregister всех ненужных инструментов, памяти не убавляется, есть ли возможность выгрузить вручную?
Автор топика
Спасибо:

Alexander

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


У вас всё остаётся в Trader.Trades, т.е. нет.
А в нынешних реалиях 150мб в оперативке - большая проблема разве? :)

Повторюсь ещё раз - для квика пользоваться RegisterTrade \ Unregistertrades не совсем верно.
Лучше настроить фильтр сразу в квике только для тех инструментов, которые нужны.
А не так что посреди работы мы перенастраиваем экспорт.

Не забывайте что это квик и изменение фильтров происходит у него не мгновенно.
Спасибо: art.tsgnet

art.tsgnet

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


Но она же постоянно увеличивается, за пять минут до 180, боюсь представить что будет в конце дня
причем, та же Quik с тем же объемом сделок занимает оперативной памяти 25 мб
было бы хорошо, если б был свой внутренний фильтр на сделки, то есть экспортировал бы через dde все, но записывал в память только определенные
Автор топика
Спасибо:

Alexander

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


У меня к концу дня робот не занимает более 150-200мб в памяти при работе через квик
Сейчас - 40.

И я также экспортирую поток всех сделок (по фьючу ртс).
Спасибо:

art.tsgnet

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


наверно уже достал с вопросами)
я решил поверить вам, что 150 мб это норма, и теперь хочу сделать чтобы при первоначальной загрузки программы, пока все данные грузятся с квика (котировки, инструменты и прочее , при этом проц почти 90% нагружен, и память растет) у меня было окно ожидания (типа текста "Подождите программа грузится ..." )
вот, предусмотрена ли в S# возможность узнать, загружены ли все данные для первоначальной работы, или нет
или самому делать? (получил инструменты, получил заявки, и т.д. ) ?
Автор топика
Спасибо:

Alexander

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


для квик шлюза-делать самому в виде простейшей отметки по времени
для плазы - есть метод IsOnline
Спасибо: art.tsgnet


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

loading
clippy