2016-06-21 4 views
2

Verwenden von Angular/Node zum Erstellen eines Proof of Concept-Projekts. Ich habe es geschafft, die erste Aufgabe zu erledigen, die "es zum Laufen bringt". Seit der MVP funktioniert, muss ich mich jetzt auf die Leistung konzentrieren. Die Latenz ist wirklich sehr schlecht und ich weiß nicht, wie ich es angehen oder beheben soll. Versuchte verschiedene Methoden, aber kein Glück.Wie kann ich die Angular/Node-Leistung erhöhen, indem Sie einen API-Aufruf statt mehrerer durchführen?

Übersicht:

Verwenden von Node Server eine externe API für Daten im JSON-Format zu nennen. Verwenden von Angular Service zum Ausführen von 5 API-Aufrufen und Rendern von Daten auf Angular Controller. Gibt es eine Möglichkeit, dass ich nur einen API-Aufruf anstelle von 5 machen kann? Da es macht 5 API aufrufen die CPU die Verarbeitung bei 90% auf der Serverseite ist und im Anschluss an die Client-Leistung:

enter image description here

+2

Warum fünf Anrufe tätigen? Könnten Sie nicht alle Daten in einem Anruf zurückgeben? Wenn Sie aus irgendeinem Grund fünf separate APIs benötigen, sollten Sie eine sechste API erstellen, die alle fünf anderen APIs zu einem einzigen Aufruf zusammenfasst. – master565

Antwort

3

Wenn X Menge Zeit in Anspruch nimmt, die Ergebnisse für einen API-Aufruf zu sammeln, Dann stecken Sie X * 5 Mal fest, um die Ergebnisse für fünf API-Aufrufe zu sammeln. Wenn Sie die API nicht ändern können, um sie zu konsolidieren, können Sie zumindest das Warten auf Rundreisen über das Netzwerk reduzieren, indem Sie alle fünf API-Aufrufe zur gleichen Zeit senden (d. H. Nacheinander, asynchron).

Das heißt, wenn X = (N * 2) + P für das Doppelte der Netzwerk-Reise plus Verarbeitung, dann könnten Sie anstelle von 5 * ((N * 2) + P) etwas wie (N * 2) sehen + (5 * P). Es kann immer noch sein, dass der Server sie einzeln verarbeitet, aber Sie haben nicht die Reisezeit im Netzwerk zwischen den Anfragen.

Wenn der Server nicht ausgelastet ist und mehrere Kerne hat und multi-threaded oder multiprocessing ist und die Datenbanksperrung zu Ihren Gunsten ist, könnte es zu einer Parallelität zwischen den fünf konkurrierenden Anfragen und dem 5 * P kommen sei weniger.

+0

Vielen Dank für die Erklärung in einer gut gemachten Form. Abschluss der Konsolidierung von API-Aufrufen in 1. –