Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2012.06.03;
Скачать: [xml.tar.bz2];

Вниз

Какой контейнер организовать?   Найти похожие ветки 

 
AlexT   (2011-01-05 17:21) [0]

Приветствую. Нужен совет... Получаю непрерывный поток данных типа Double. Мне нужно организовать контейнер типа "очереди", например, на 1000 последних поступивших элементов этого типа, что бы анализировать их "на лету". Например сумму последних 10, среднее последних 100, максимальное последних 100 и т.д. Сигнал для анализа - поступление очередного Double. Скорость поступления до 30 тиков в сек. Что использовать? D2007.


 
Игорь Шевченко ©   (2011-01-05 18:15) [1]

массив double


 
AlexT   (2011-01-05 18:23) [2]

А при записи в него последнего элемента первый стирать, а весь массив двигать?


 
Anatoly Podgoretsky ©   (2011-01-05 18:34) [3]

> AlexT  (05.01.2011 18:23:02)  [2]

Кольцевой буфер.


 
AlexT   (2011-01-05 18:45) [4]

что взять за основу? Массив? Постоянно двигать 1000 или более элементов может накладно выйти.


 
CrytoGen   (2011-01-05 18:55) [5]

30 раз в секунду это не накладно :)
Но если хотите помучиться, то можете попробовать TQueue из Contnrs.


 
AlexT   (2011-01-05 19:16) [6]

Попробую массив двигать. надеюсь ресурса хватит, а то FireBird еще параллельно много чего делает здесь же...


 
MBo ©   (2011-01-05 19:40) [7]

двигать не надо. Про кольцевой буфер уже подсказали. Очередное число заносится в массив по индексу по модулю длины массива.


 
AlexT   (2011-01-05 19:51) [8]

Спасибо. Я понял. При достижении конца массива, начинаем писать ему в начало. Храним только сам индекс, что б от него плясать. :)


 
RWolf ©   (2011-01-06 10:11) [9]

и да, двигать массив из тысячи double можно хоть 30 тысяч раз в секунду, процессор это особенно не нагрузит.


 
AlexT   (2011-01-06 15:00) [10]

Но кроме сдвига его еще анализировать надо на разные глубины и по разным алгоритмам...


 
RWolf ©   (2011-01-06 15:37) [11]

об этом и речь — не особо важно, двигать или не двигать массив;
важнее, как данные будут обрабатываться.


 
Дмитрий Белькевич   (2011-01-06 17:28) [12]


> Но кроме сдвига его еще анализировать надо на разные глубины
> и по разным алгоритмам...


Еще и в параллельном потоке/потоках бы обрабатывать, думается мне...
Но это уже смотря по задаче (и по железу - по ядрам) - может и основной справится - не вижу всей задачи, не могу сказать.


 
AlexT   (2011-01-07 00:01) [13]

Я на досуге взялся написать биржевого торгового робота. Цепляюсь к торговому серверу на РТС, там очень много таблиц, Открываю табл. "текущие котировки". После этого мне потоком сервер шлет по этой табл. апдейты - каждый из них - строка(массив примерно из 50 полей типа OleVariant). Частота до 30 апдейтов/сек.(по 1 инструменту!!!) Я, все это успешно наливаю к себе в FireBird для последующего анализа. Но есть необходимость параллельно с записью в базу оперативно просматривать только отдельные поля, например изменения цен и объемов для скальпинговых сделок. Такие дела.


 
Palladin ©   (2011-01-07 04:02) [14]

летать рожден - не ползай


 
Германн ©   (2011-01-07 04:22) [15]


> AlexT   (07.01.11 00:01) [13]

"Кольцевой буфер" устроил или нет?
Если нет, задай другой вопрос.
В конце концов тоже будет "кольцевой буфер", но более сложный.
А "двигать массив 30 тысяч раз в секунду" - это троешникам. Нынешние процессоры достаточно быстрые. :)


 
AlexT   (2011-01-07 10:04) [16]

Кольцевой вполне устроит. Спасибо. Двигать не буду. Если можно не двигать то зачем? Если все в мире начнут без нужды двигать массивы, Сколько лишней энергии уйдет? Выбросы опять же...:)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2012.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
15-1327388540
OW
2012-01-24 11:02
2012.06.03
Как думаете, в чем лучше всего хранить деньги?


15-1328473805
Юрий
2012-02-06 00:30
2012.06.03
С днем рождения ! 6 февраля 2012 понедельник


2-1327586737
dubdaze
2012-01-26 18:05
2012.06.03
определение MDI-окна, обратившегося к форме


2-1327661887
I_D
2012-01-27 14:58
2012.06.03
Компонент на базе TImage


15-1328387403
Юрий
2012-02-05 00:30
2012.06.03
С днем рождения ! 5 февраля 2012 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский