Значения из буферов индикатора читаются достаточно медленно.
При чем, Buf1[1000] возвращается сильно медленнее, чем Buf1[10].
Например,
http://www.forextester.ru/forum/viewtop ... =3&t=22024
c MA degree = 1.1 может считаться 8 секунд, а с MA degree = 3.0 может считаться 160 секунд.
Разница - в 20 раз, при, казалось бы, том же количестве вычислений.
Понятно, что, наверное, буферы организованы как очереди, а не как массивы, но всё-таки
Как можно ускорить выборку из буферов индикатора?
Как ускорить чтение буферов индикатора?
-
- Сообщения: 10
- Зарегистрирован: Чт янв 02, 2014 7:34 am
- Откуда: Latvia
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: Как ускорить чтение буферов индикатора?
Все данные в программе устроены одинаково - как массивы отображаемые на память.Tovaroved писал(а):Значения из буферов индикатора читаются достаточно медленно.
При чем, Buf1[1000] возвращается сильно медленнее, чем Buf1[10].
Например,
http://www.forextester.ru/forum/viewtop ... =3&t=22024
c MA degree = 1.1 может считаться 8 секунд, а с MA degree = 3.0 может считаться 160 секунд.
Разница - в 20 раз, при, казалось бы, том же количестве вычислений.
Понятно, что, наверное, буферы организованы как очереди, а не как массивы, но всё-таки
Как можно ускорить выборку из буферов индикатора?
Т.е. если все данные помещаются в физическую память - то разницы между 0м и 1000м элементом нет, они читаются за одно время. Но если данных слишком много и они не помещаются в память, то часть страниц данных выпихивается на диск и при обращению к элементу данных который в данный момент выпихнут, страница читается с диска в память.
Если это данный случай, то рекомендации такие:
1. Генерировать тики только по нужным для тестирования валютам, все ненужные индикаторы удалить с графиков (См. диалог список индикаторов). Иногда после удаления индикаторов надо перезапустить программу потому что они не сразу удаляются из памяти.
2. Добавить физической памяти в комп.
3. Поставить SSD для более быстрой работы с диском.
Возможен вариант что при degree 3.0 делаются какие-то дополнительные вычисления. Код не смотрел.
Asta la vista
Mike
Mike
-
- Сообщения: 10
- Зарегистрирован: Чт янв 02, 2014 7:34 am
- Откуда: Latvia
Re: Как ускорить чтение буферов индикатора?
Спасибо.
Специально не тестировал, но вполне возможно, что не хватает памяти на 32бит Винде.
Для нулевого бара всё с приемлемой скоростью считается, значит, видимо, что-то свопилось.
Есть смысл сапгрейдится, скажем, на 8 гиг ОЗУ, и перейти на 64бит ОС?
Специально не тестировал, но вполне возможно, что не хватает памяти на 32бит Винде.
Для нулевого бара всё с приемлемой скоростью считается, значит, видимо, что-то свопилось.
Есть смысл сапгрейдится, скажем, на 8 гиг ОЗУ, и перейти на 64бит ОС?
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: Как ускорить чтение буферов индикатора?
Не могу сказать, попробуйте. В принципе программа 32 битная, т.е. 8 гиг оперировать не сможет, максимум 2 гига под 32 битной ос, но говорят что под 64 битной ос может выделить до 4х (на практике до 3.5). 8 гиг не помешает потому что другие тоже есть хотят как и ос.Tovaroved писал(а):Спасибо.
Специально не тестировал, но вполне возможно, что не хватает памяти на 32бит Винде.
Для нулевого бара всё с приемлемой скоростью считается, значит, видимо, что-то свопилось.
Есть смысл сапгрейдится, скажем, на 8 гиг ОЗУ, и перейти на 64бит ОС?
Asta la vista
Mike
Mike