Вопрос по массивам - страница 3

 
Ihor Herasko:

Такой массив объявлять - моветон. Ведь он при этом размещается в стековой памяти.

Для массивов нужно использовать динамическое распределение памяти:

Если все это нужно для сбора тиков, то память лучше выделять постепенно: пришел тик - увеличили размер массива. Тогда и не будет вопроса о том, сколько памяти требуется резервировать для тиков, число которых заранее неизвестно.

P. S. Выделять памяти на 10 триллионов вещественных чисел точно никто не даст. Ведь это 80 Тб памяти. Об оперативке такого объема еще не слышал. Будет наверное когда-то, но сейчас пока нет.

памяти более чем достаточно
 
Renat Akhtyamov:

предполагается обработка всех значений цены из массива на текущий момент времени в комплексе

и чем больше значений, тем лучше

подгрузить можно, не спорю

но какой смысл постоянно перезаписывать файл?

значит если умножать на миллион то можно создать массив примерно в 170 тысяч строк?

О строках - связи не вижу, можно все записать и в одну строку. Умножение курса на миллион дает положительное целое число от 0 до 16 млн, что соответствует значениям курса до 16 и подходит для большинства употребительных инструментов, кроме пар с йеной, и помещается при записи в оперативную либо дисковую память в 3 байта (всесто double длиной 8 байт). Перезаписывать файл не надо, надо дописывать, у Александра извечная проблема отсутствия архивов. Вы ведь для него решили делать эту обработку?

О нужном числе элементов. Если не делать анализ он-лайн, то хранить в памяти нужно лишь значения курсов с предыдущего опроса их значений. А вот число элементов, которое разумно обрабатывать он-лайн, в столь любимом Александром Vissim не зря ограничено двадцатью тысячами. Он ведь, в частности, использует непараметрические статистики. Их вычисление предполагает предварительное упорядочивание массива, а это небыстро. Методы без полного упорядочивания есть, и они в своем быстродействии могут опираться на то, что в массиве фиксированной длины элементы заменяются по одному, но Александр уже проигнорировал написанный специально для него код с таким подходом, еще в прошлом году. За время между тиками можно не успеть.

Третье. Насколько я понимаю, Вы намереваетесь в массив размещать элементы, попавшие в скользящее окно. И вычислять какие-то характеристики этого окна (дисперсию приращений курса, например). Если брать средние не просто арифметические, а экспоненциальные, то хранить массив не надо, при экспоненциальном усреднении работают рекуррентные формулы.

Причина обращения: