Sergey 
    
    
 
    
    Sergey 
    
    
        
        
        
        И вычислять на ходу
    
 
    
    Sergey 
    
    
        
        
        
        Взял один элемент и произвел вычисления вместе с ранее вычисленными
    
 
    
    Sheldhur 
    
    
        
        
        
        так я в дочернем процессе всё буду делать, мне главное, чтобы он out of memory не кинул
    
 
    
    Sergey 
    
    
        
        
        
        Разбирай на части
    
 
    
    Sergey 
    
    
        
        
        
        Может кинуть
    
 
    
    Sergey 
    
    
        
        
        
        От оси зависит
    
 
    
    IL'shat 
    
    
        
        
        
        быстрее через бд будет, в нее перегнать и птом и там группировать и вытаскивать по кускам в процессе рендеринга
    
 
    
    Sheldhur 
    
    
        
        
        
        не, там математики много :)
    
 
    
    Sheldhur 
    
    
        
        
        
        бд не осилит :)
    
 
    
    Sheldhur 
    
    
        
        
        
        бд и так есть
    
 
    
    Sheldhur 
    
    
        
        
        
        буду кусочками вытаскивать, значит
    
 
    
    Dmitry 
    
    
        
        
        
        Так, а распараллелить обход массива? Разбить на несколько подмассивов? Обходить кусками и тд. Ну, из очевидного)
    
 
    
    IL'shat 
    
    
        
        
        
        а если вогнать результат вычислений в бд
    
 
    
    IL'shat 
    
    
        
        
        
        там же не реал тайм?
    
 
    
    IL'shat 
    
    
        
        
        
        даже если реал тайм можно переодически переписывать данные птом сигнал на рендер посылать
    
 
    
    GG 
    
    
        
                    
                        
                            
                            не, там математики много :)
                        
                    
                
        
        
        Кстати, посмотри на лодаш, там есть методы работы с массивов, типо вычислить среднее, исключить не найденное и т. д.
    
 
 
    
    Sheldhur 
    
    
        
        
        
        это уже на нативном сделано
    
 
    
    Sergey 
    
    
 
    
    Sergey 
    
    
 
    
    Sergey 
    
    
        
        
        
        а вообще стримами будет проще всего, особенно если из сети получаешь данные (Rx, Kefir)
    
 
    
    Sergey 
    
    
        
        
        
        обрабатывать по мере получения
    
 
    
    Aleksey 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        ну...из базы вытащил, вроде даже спокойно, больше 1.5гб не сожрало на 1.6кк значений
    
 
    
    Sheldhur 
    
    
        
        
        
        но всё равно разбивку сделаю, по 500к, наверно
    
 
    
    Aleksey 
    
    
        
        
        
        используй для перебора массива Promise.all(map.someArray(function(){}))
    
 
    
    Sheldhur 
    
    
        
        
        
        а чём мне промайз поможет? :)
    
 
    
    Sergey 
    
    
 
    
    Sergey 
    
    
 
    
    Sergey 
    
    
        
        
        
        в твоем случае идеал, наверное, 10-100К
    
 
    
    Sheldhur 
    
    
        
        
        
        но я тогда потрачу время на обращение к базе
    
 
    
    Aleksey 
    
    
        
        
        
        во первых промис до завершения не позволит остальному коду что то делать
        в о вторых почитай 
        https://habrahabr.ru/company/mailru/blog/269465/
    
 
    
    Sheldhur 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        на таком количестве
    
 
    
    Aleksey 
    
    
        
        
        
        плюс цепочки промисов
    
 
    
    Aleksey 
    
    
        
        
        
        ты попробуй
    
 
    
    Sergey 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        уже было :)
    
 
    
    Aleksey 
    
    
        
        
        
        все плохо?
    
 
    
    Sheldhur 
    
    
        
        
        
        стек забивается
    
 
    
    Sergey 
    
    
        
                    
                        
                            
                            все плохо?
                        
                    
                
        
        
        синхронные операции блокируют поток, и промисы вообще никакой погоды не сделают
        только увеличат память
    
 
 
    
    Sergey 
    
    
        
        
        
        обход массива это как раз синхронная операция
    
 
    
    Sheldhur 
    
    
        
        
        
        промис даже на 100к все вешает
    
 
    
    Aleksey 
    
    
        
        
        
        я не настаиваю
        но массив можно перебрать лодашевским фор.ичем
        он с этим справляется
        + куча плющек на поиск и выбоку нужных элементов массива
    
 
    
    Aleksey 
    
    
        
        
        
        плюс лодашевкая Math
    
 
    
    Sheldhur 
    
    
        
        
        
        нативное явно быстрее лодаша будет :)
    
 
    
    Sergey 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        особенно, если не юзать всякие forEach, а старый добрый for
    
 
    
    Aleksey 
    
    
        
        
        
        не всегда
        нативно forEach для перебора массива не используешь
        к тому же var someVal = someArray.filter('someVAl'...)
        не сможешь использовать
    
 
    
    Sheldhur 
    
    
        
        
        
        все эти forEach, map, reduce, filter это обертка над for'ом
    
 
    
    Sergey 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        быстрее это всё в одном цикле сделать
    
 
    
    Sergey 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        ну ок
    
 
    
    IL'shat 
    
    
        
        
        
        Как вариант можно чистить память для всех элементов внутри цикла, те
        For(i=0;i<len;i++){ let v=...; v=null;}
    
 
    
    IL'shat 
    
    
        
        
        
        Может памяти будет меньше жрать
    
 
    
    GG 
    
    
        
                    
                        
                            
                            нативное явно быстрее лодаша будет :)
                        
                    
                
        
        
        если просто перебирать каждый i'ный элемент, то да. А если нужны какие-то сложные операции с масивом, то лодаш лучше справиться, там внутри работают алгоритмы, которые могут решают задачу, даже не перебрав весь массив
    
 
 
    
    Sheldhur 
    
    
 
    
    Sheldhur 
    
    
        
        
        
        sequelize можно заставить запихать Station в отдельный объект?
    
 
    
    Sheldhur 
    
    
        
        
        
        чтобы можно было обращаться item.Station.id
    
 
    
    IL'shat 
    
    
        
        
        
        Все поля по по которым будут  сравнения вынеси в поля таблицы, раскидывай их
    
 
    
    Sheldhur 
    
    
        
        
        
        шта
    
 
    
    IL'shat 
    
    
        
        
        
        Птом повесь индекс на поля которые с помощь === будут сравниватся http://docs.sequelizejs.com/manual/tutorial/models-definition.html#indexes
    
 
    
    IL'shat 
    
    
        
        
        
        Вынеси в отдельное поле
    
 
    
    IL'shat 
    
    
        
        
        
        чтобы можно было обращаться item.Station.id
    
 
    
    IL'shat 
    
    
        
        
        
        При заполнении раскидай все такие которые во вложенной структуе
    
 
    
    Sheldhur 
    
    
        
        
        
        чёт ниче не понял, как мне индексы помогут в этом
    
 
    
    IL'shat 
    
    
        
        
        
        Ну ты в каком месте хочешь до вложенного объекта стучаться?
    
 
    
    IL'shat 
    
    
        
        
        
        Если в условии для фильтрации то индекс должен помощь, если для рендора то не сильно поможет
    
 
    
    Sheldhur 
    
    
        
        
        
        это индекс для базы
    
 
    
    Sheldhur 
    
    
        
        
        
        причем он тут
    
 
    
    Sheldhur 
    
    
        
        
        
        во всех челочеческих ORM все связи пихаются в отдельные объекты, должно быть:
        {
          Station: {
            id: 1,
            name: ...
            ...
          }
          compF: ...
          ...
        }
    
 
    
    Sheldhur 
    
    
        
        
        
        а не то что sequelize сделал
    
 
    
    IL'shat 
    
    
        
        
        
        Ну я про оптимизацию говорю
    
 
    
    Sheldhur 
    
    
        
        
        
        ставить индексы я умею, спасибо :)
    
 
    
    Sheldhur 
    
    
        
        
        
        я спрашиваю как в результате выборки сделать, чтобы Station, который джойнится был в отдельном объекте, чтобы в цикле потом обращаться item.Station.id, а не item['Station.id']
    
 
    
    IL'shat 
    
    
        
        
        
        Ну где юзается переменная?
    
 
    
    IL'shat 
    
    
        
        
        
        Условие или рендер
    
 
    
    Sheldhur 
    
    
        
        
        
        причем тут цикл