Gibt es Leistungs- / Funktionsunterschiede für AWS Lambda-Funktionen, die in node.js / Java geschrieben sind [geschlossen]

8

Ich plane, AWS Lambda für das Backend einer App zu verwenden. Ich bin mit Java im Vergleich zu node.js wohler, aber ich sehe Lambda-Funktionen in node.js sind beliebter als Java. Gibt es Leistungsunterschiede zwischen Java-basierten und Nodejs-basierten Lambda-Funktionen?

    
suku 02.05.2016, 13:02
quelle

2 Antworten

19

Obwohl Java eine langsamere Startzeit hat, ist die Laufzeitleistung viel besser als die von node.js oder Python. Das bedeutet Java Lambda-Funktionen sind sinnvoll, wenn:

  1. Sie werden regelmäßig aufgerufen. - AWS Lambda wird seine initialisierten Container erneut verwenden a> und Sie können von der besseren Leistung ohne die Kaltstart-Latenz
  2. profitieren

und / oder

  1. Sie haben eine lange Laufzeit - Wenn Ihre Funktion z. für 1 oder 2 Minuten, ist es nicht wirklich wichtig für 5 Sekunden Start, wenn die Funktion selbst läuft eine Größenordnung schneller als node.js

Vielleicht möchten Sie sich das Github-Projekt anschauen, das die Kaltstartzeiten vergleicht.

Ein großer Faktor von Java's Kaltstart ist wahrscheinlich die Tatsache, dass Java-Projekte oft viel größer sind als z. eine node.js-Funktion. In jedem Fall sollten Sie immer versuchen, Funktionen so klein wie möglich zu halten, um die Anfangslatenz zu reduzieren.

Und natürlich sollte Leistung nicht der einzige Faktor bei der Wahl Ihrer Programmiersprache sein. Ich persönlich denke, node.js ist sehr praktisch, wenn z. mit JSON-Daten, deshalb verwende ich es in den meisten meiner Funktionen.

    
birnbaum 02.05.2016, 18:36
quelle
3

Java-Funktionen auf Lambda erfordern im Allgemeinen mehr Ressourcen und benötigen im Vergleich zu NodeJS-Funktionen viel länger, um von einem Kaltstart zu reagieren. Ansonsten gibt es keinen Unterschied.

    
Mark B 02.05.2016 13:23
quelle