2016-05-02 13 views
8

yazılmış AWS Lambda fonksiyonları için herhangi bir performans/işlevsellik farklılıklar var mı. Java ile node.js'ye kıyasla daha rahatım ama node.js'deki Lambda işlevlerinin Java'dan daha popüler olduğunu görüyorum. Java tabanlı ve nodejs tabanlı lambda işlevleri arasında herhangi bir performans farkı var mı? Lambda sayesindeBen bir uygulamanın arka uç için AWS Lambda'ya kullanmayı planlıyorum node.js/Java

+2

Bu, bir fikir meselesi değil, ölçülebilir bir gerçek gibi görünmüyor: https://forums.aws.amazon.com/thread.jspa?messageID=691551 – Atifm

cevap

19

, bu çalışma zamanı performansı node.js veya Python olandan çok daha iyi bu. AWS Lambda reuse it's initialized containers ve soğuk çalıştırma gecikme

ve/veya

olmadan daha iyi bir performans yararlanabilir olacak - Onlar düzenli çağrılan edilir

  1. : Yani eğer Java Lambda fonksiyonları mantıklı demektir
      uzun bir çalışma zamanını sahip
    1. - senin işlevi örneğin çalışıyorsa

    Soğuk karşılaştırır this github project bakmak isteyebilirsiniz node.js daha fonksiyonu kendisi hızlı büyüklükte bir düzen çalışıyorsa 1 veya 2 dakika boyunca, gerçekten başlatma yaklaşık 5 saniye umurumda değil başlangıç ​​saatleri.

    Java'nın kötü soğuk başlar

    Bir büyük faktör muhtemelen Java projeler çoğunlukla örneğin çok daha büyük olduğu gerçektir Bir node.js işlevi. Herhangi bir şekilde, başlangıçtaki gecikmeyi azaltmak için işlevleri olabildiğince küçük tutmaya çalışmalısınız. Programlama dili seçerken

    Ve tabii ki performansın

    tek faktör olmamalıdır. Kişisel olarak, node.js'nin örn. JSON verileriyle, bu yüzden işlevlerimin çoğunda kullanıyorum.

3

Java fonksiyonları genellikle daha fazla kaynak gerektiren ve NodeJS işlevlerine kıyasla, soğuk baştan yanıt vermek çok daha uzun sürer. Aksi halde fark yoktur. Java daha yavaş bir başlangıç ​​süresine sahip iken

+0

"Soğuk bir başlangıçtan ne demek istiyorsunuz?" "? – suku

+2

İşlev herhangi bir istek almıyorsa, Amazon bunu herhangi bir kaynak kullanmadan otomatik olarak Lambda sunucularından siler. Eğer bu gerçekleşirse, isteğin işlenmesinden önce, fonksiyonda bir talep geldiğinde, bir lambda sunucusuna yeniden dağıtılması gerekir. Buna "soğuk başlangıç" denir. –

+0

Bilgilendirmek için teşekkürler. Basit java crud işlevinin soğuk başlamadan yanıt vermesi için yaklaşık zaman nedir? Hem Java hem de nodejs, yürütmek için yaklaşık olarak aynı miktarda maksimum bellek kullanıyor mu? – suku