Мой вопрос о производительности в моем приложении NodeJS...
Если моя программа запускает 12 итераций по 1.250.000 каждый = 15.000.000 итераций вместе - для Amazon требуется выделенные серверы в следующий раз:
r3.large: 2 vCPU, 6.5 ECU, 15 ГБ памяти → 123 минуты
4.8xlarge: 36 vCPU, 132 ECU, 60 ГБ памяти → 102 минуты
У меня есть код, похожий на код ниже...
start(); start(){ for(var i=0; i<12; i++){ function2(); // Iterates over a collection - which contains data split up in intervals - by date intervals. This function is actually also recursive - due to the fact - that is run through the data many time (MAX 50-100 times) - due to different intervals sizes... } } function2(){ return new Promise{ for(var i=0; i<1.250.000; i++){ return new Promise{ function3(); // This function simple iterate through all possible combinations - and call function3 - with all given values/combinations } } } } function3(){ return new Promise{ // This function simple make some calculations based on the given values/combination - and then return the result to function2 - which in the end - decides which result/combination was the best... }}
Это равно 0,411 миллисекунды /441 микросекунды итерации!
Когда я смотрю на производительность и использование памяти на панели задач... процессор не работает на 100% - но больше похоже на 50%... все время? Использование памяти начинается очень низко - но KEEPS растет в ГБ - каждую минуту, пока процесс не будет выполнен - НО (выделенная) память сначала выдается, когда я нажимаю CTRL + C в Windows CMD... так что это похоже на сборку мусора NodeJS не работает оптимально - или может быть его простой дизайн кода снова...
Когда я выполняю приложение, я использую память, например:
node --max-old-space-size = "50000" server.js
ПОЖАЛУЙСТА, расскажите мне все, что я могу сделать, чтобы сделать мою программу FASTER!
Спасибо всем - так много!