NodeJS, Versprechen und Leistung

Meine Frage bezieht sich auf die Leistung in meiner NodeJS-App ...

Wenn mein Programm 12 Iterationen mit jeweils 1.250.000 = 15.000.000 Iterationen gleichzeitig ausführt, sind für die Verarbeitung bei Amazon dedizierte Server erforderlich:

r3.large: 2 vCPU, 6,5 ECU, 15 GB Speicher -> 123 Minuten

4.8xlarge: 36 vCPU, 132 ECU, 60 GB Speicher -> 102 Minuten

Ich habe einen ähnlichen Code wie der folgende Code ...

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...
}}

Dies entspricht 0,411 Millisekunden / 441 Mikrosekunden pro Iteration!

Wenn ich mir die Leistung und die Speichernutzung in der Taskleiste anschaue ... läuft die CPU nicht zu 100% - sondern eher zu 50% ... die ganze Zeit? Die Speichernutzung beginnt sehr niedrig - aber KEEPS wächst in GB - jede Minute, bis der Prozess abgeschlossen ist - ABER der (zugewiesene) Speicher wird zuerst freigegeben, wenn ich STRG + C in der Windows CMD drücke ... so wie die NodeJS Garbage Collection funktioniert nicht optimal - oder vielleicht ist es einfach das design des codes nochmal ...

Wenn ich die App ausführe, verwende ich die Speicheroption wie folgt:

node --max-old-space-size = "50000" server.js

BITTE sag mir alles, was du kannst, damit mein Programm SCHNELLER wird!

Vielen Dank an alle - so sehr!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage