У вас не стоит Flash Player
Настройки
#2397 - Wed Feb 24 2010 06:46 PM При каждом выполнении скрипта заново создается кл?
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Заметил, что при каждом выполнении скрипта обнуляются переменные-члены класса-если они не статик. Получается что каждый раз заново создается класс? Заметил при выполнении скрипта
рост потребляемой памяти-ее потребление конечно потом падает, когда сборщик мусора дойдет, но при выполнении скрипта с интервалом обновления - сделка получается оверхед. Надеюсь, я ничего не перепутал?))

Наверх
#2400 - Wed Feb 24 2010 08:37 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Да, с выполнением все так и есть. не очень понял, что вы имели ввиду под сделка - оверхед.

Наверх
#2403 - Thu Feb 25 2010 10:41 AM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Оверхед-в том плане что зачем его каждый раз создавать когда можно вызывать один и тот же метод, тогда появилась бы и возможность хранить что-то полезное внутри класса без заморочек?

Наверх
#2404 - Thu Feb 25 2010 12:19 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
А когда тогда делать расчеты в лаборатории и оптимизацию (многопоточную), если скрипт будет считать по разному, в зависимости от того, что там хранится? Это во-первых. Во-вторых, вы не знаете в какой момент истории скрипт будет запущен в первый раз, соответственно, что там можно сохранить, чтобы результат был одинаковый каждый раз?
Расчет всего каждый раз - это лишняя проверка, что нет ошибок в самом скрипте, что он всегда предсказуем. В рилтайме стоит просто ограничивать количество баров, на которых идет расчет, каждый раз тянуть несколько тысяч смысла нет.

Наверх
#2405 - Thu Feb 25 2010 12:38 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Мне кажется, что мы с Вами друг друга не до конца поняли))) Давайте рассмотрим два случая:1) прогонка на истории 2) реальная торговля. Случай 1) У нас в каждом потоке отптимизации создается по экземпляру. Каждый из этих экземпляров прогоняется по всей истории. Я правильно понял? Допустим теперь что у нашего класса есть приватная переменная. Она как то меняется на каждом баре-все хорошо поскольку на тестах истории мы сразу выполняем нашу функцию для всех баров-тут наша переменная впринципе даром не нужна поскольку все можно сохранить тупо в функции. 2) допустим нам нужно что-то сохранять в реале. Это может быть ,например, индюк, может быть еще что-то. Чтобы каждый раз его не рассчитывать-мы могли бы его сохранить в приватную переменную-но блин ведь у нас каждые раз заново создается класс. Кроме того допустим у нас интервал обновления-сделка-скрипт будет выполняться довольно часто, допустим таких скриптов штук 10 и каждый создает каждый раз по классу. И нам еще надо что-то рассчитывать. Не будет ли это напряжно для памяти и проца?

Итого: с оптимизацией все понятно-в ней создание заново или нет не будет играть большой роли. Но на реале есть польза от испольщования того же класса?

Наверх
#2407 - Thu Feb 25 2010 01:37 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Ну вы проведите тестирование, никакого напряжения для процессора нет, средний скрип с историей в 1000 баров пересчитывается за 40-60мс на далеко не самом мощном компьютере. Выставление заявок займет заметно большее время из-за задержек между передачей данных.
Индикаторы хранить смысла нет, на следующем пересчете уже будут другие данные, и рассчитанные индикаторы устареют.
С хранением данных между пересчетами могут вылиться трудноулавлимые проблемы, когда вы не будете понимать, что происходит. Такие проблемы не стоят лишнего процессорного времени, поверьте. Мы отказались от этого сознательно. Более примитивное решение - более надежное.

Наверх
#2408 - Thu Feb 25 2010 02:15 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Ок. Кстати вы не замечали постепенного роста потребления памяти? При открытии приложение потребляло порядка 160 мб сейчас 380. Вчера вечером доходило до 600 с лишним

Наверх
#2413 - Thu Feb 25 2010 05:13 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Мы периодически тестируем утечки памяти. Они есть в том числе, у самой библиотеки WPF от Microsoft. Суть в том, что закрытые окна находятся какое-то время в кеше, и память от них не сразу освобождается. Кроме того, сборщик мусора, если памяти достаточно, не утруждает себя отдавать системе "ненужную" память.
Так же учитывайте, что сам TSLab имеет кеш, если вы постоянно загружаете разные исторические данные по разным инструментам и разным интервалам, то они все остаются в памяти, для быстрого повторного доступа, освобождаются только в самом крайнем случае. То же самое с тиками за день может накопиться довольно много, особенно по фьючерсам.

Наверх
#4754 - Thu Apr 22 2010 12:10 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Я понял чего мне не хватает и чем плохо то ,что класс создается заново- нужно сохранять некоторую информацию для скрипта. Для этого приходится тупо писать сериализацию и десериализацию и указывать файлик и то что при каждом исполнении приходится его читать-это нехорошо. Да и если Вам скрипт потом нужно другому человеку передать, то ему придется править код -редактровать путь до файлика. Можно же сделать какой-то тег и автоматом сериализовать и десериализовать данные-будет очень удобно, не надо будет писать ручками чтения из файлика. Да, кстати, важна еще удобность вашего решения, а надежность достигается путем тщательного тестирования и написания тестов( благо эт не гуи-можно каждый метод протестировать).

Наверх
#4769 - Thu Apr 22 2010 02:01 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
А как вы тестируете скрипт, который что-то сериализует?

Наверх
#4772 - Thu Apr 22 2010 02:51 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Прошу прощения-меня глючит, только что придумал как без этих сложностей обойтись. Да только на игровом аккаунте. Скажите а есть ли доступ через апи к данным по другому инструменту?

Наверх
#4773 - Thu Apr 22 2010 03:09 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Создаете в скрипте несколько источников данных и передаете их во внешний скрипт через интерфейсы IExernalScript2, IExernalScript3, IExernalScript4

Наверх
#4774 - Thu Apr 22 2010 03:20 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Спасибо, я то думал что нельзя... Только вот такой вопрос-а зачем столько интерфейсов? Почему не один большой?

Наверх
#4778 - Thu Apr 22 2010 03:31 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Ну если бы в одном интерфейсе было много методов, то каждому внешнему скрипту их бы пришлось имплементировать все.
А так программа по интерфейсу определяет, сколько источников нужно скрипту.

Наверх
#4780 - Thu Apr 22 2010 03:35 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Не я немного не про то-метод то можно один, но скажем у него шло бы ISecurity как params. А кол-во задавалось бы в гуи, тогда не было бы ограничений на кол-во.

Наверх
#4782 - Thu Apr 22 2010 03:39 PM Re: При каждом выполнении скрипта заново создается кл? [Re: anothar]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Не было такой потребности, но в будущем можно будет сделать.
Хотя придется изменить генератор скриптов, т.к. он не умеет передавать параметры через массив.

Наверх
#4788 - Thu Apr 22 2010 03:43 PM Re: При каждом выполнении скрипта заново создается кл? [Re: Nektodron]
anothar Offline
journeyman

Registered: Thu Jan 07 2010
Записи: 85
Да, было бы неплохо. Хотя я пока только до двух бумаг дошел)))

Наверх


Moderator:  ViL, sar