Heller
Разработчики
Hero Member
Сообщений: 1277
|
|
« Ответ #15 : Апреля 08, 2014, 01:24:17 pm » |
|
Такой дополнительный вопрос. Я нашёл проблему, связанную с тем, что сборщик мусора работает только для индикатора, непосредственно добавленного на график. То есть если индикатор использует IndRef для пользовательских индикаторов, активно использующих память, то сборщик мусора для этих внешних индикаторов не будет запускаться, а это поправлю. Посмотрите в своём коде, не тот ли это случай?
Проблема так же может быть ещё и вот в чём. Сборщик мусора так написан, что он запускается на каждой новой свечке, и за один проход он отсеивает примерно половину ненужных объектов (этот подход менее экономен по памяти, но более эффективен по скорости).
Таким образом если во время расчета индикатора во время каждой свечи происходит примерно одинаковое количество сделок и на каждую сделку выделяется примерно одинаковое количество объектов, память постепенно будет очищаться (примерная формула x_{n+1} = (x_n+D)/2, легко увидеть, что предел по затратам памяти всегда D).
По всей видимости на каждую последующую сделку в вашем скрипте требуется всё больше и больше памяти, что приводит к означенной проблеме. Вероятно раньше на ранних сборках этого не наблюдалось, т.к. в принципе ранее на каждый объект требовалось в среднем раза в четыре меньше памяти, нежели сейчас.
Но в любом случае пока кажется, что проблема в вашем скрипте. Не исключено, конечно, что ошибка всё же у нас, а ваш скрипт на неё всё же нарывается, но пока я никак не могу ничего подобного воспроизвести. Если пришлёте ваш скрипт, то вероятно я что-то найду.
|