Dawny33 yanıtı iyi, ama geliştirme sürecinin başlarında başlardım .
Yerel olarak veya bir test veri kümesi.
Bununla birlikte, bir optimizasyon amacıyla yaptığınız bu performans testinin doğrudan geliştiricinin makinesinden başlaması gerektiğini söyleyebilirim. Ya da en azından, buluta geçmeden önce bazı yerel ortamlardan.
Bunu söylememin nedeni, AWS Lambdas birçok noktada şaşırtıcı olsa da, sunucu üzerinde tam bir kontrole sahip olmamanızın enstrümantasyon yeteneklerinizi sınırlayacağıdır. Ben ne zaman Sunucusuz enstrümantasyon imkansız olduğunu söyleyerek bununla birlikte ne kadar (ve kaç kaynaklanır kaç CPU kesmeler endam deneyin değilim senin kod) sadece eğlence için;)
Öyleyse tavsiye ettiğim ve bu aslında sunucusuz ile sınırlı değil, profil oluşturmaya erken başlamaktır. NodeJS profili birçok farklı araçla yapılabilir, NewRelic, dynatrace ve AppDynamic büyük oyunculardan bazılarıdır. Daha küçük bir oyuncu da var, bazıları sadece bir NPM paketi (Nodefly gibi). V8 motorunda bir profil oluşturduğu için, herhangi bir ek alet kullanmadan bazı NodeJS yapmak da mümkündür. NodeJS'nin bu belgeleri başlamanıza yardımcı olacaktır.
Hangi aracı seçerseniz seçin, yerel olarak yüklemek ve profil oluşturma verileri toplamak istersiniz. Bu, bir aracı çalıştırmayı veya paketinize bir paket eklemeyi içerebilir. Aracınızın talimatları size nasıl kurulacağını söyleyecektir. İyi bir profil oluşturucu, ne kadar bellek ve CPU kullandığınızı size bildirir. Daha iyi araçlar, kaç uzak aramanın yapıldığı, ne kadar sürdüğü hakkında size fikir verecektir.
Darboğazları tanımlamak ve bunlara hitap etmek için aracın sağladığı profil oluşturma verilerini kullanın. Ne kadar profil oluşturabileceğiniz konusunda bir sınırlama yoktur. Bazı insanlar (deli?) En kritik işlevlerinin sistem çağrılarına bakacaktır. İşlevinizin nanosaniyesini tıraş etmek istiyorsanız bu tür bir şey yapmanız gerekebilir (ancak, belki de AWS Lambda ile başlamak için en iyi seçim değildir).
Bu noktada, AWS Lambda'ya özgü bir şeyden bahsetmediğimi de belirtmek gerekir. Bunun nedeni, optimizasyonlarınızın büyük olasılıkla AWS Lambda'ya özgü olmayacağıdır (sonuçta, sunucusuz olarak sunucu / ortam hakkında endişelenmemelisiniz).
Yalnızca kodunuzun değil, aynı zamanda beklediğiniz şekilde çalıştığından emin olun. Aşırı optimizasyon yapmayın, ancak CPU ve bellek kullanımına dikkat edin. Sıraladığınızda 2MB'lık bir dizi gerçekten 10MB'a mı çıkmalı? Muhtemelen değil.
Daha sonra, Lambda'ya konuşlandırıldığında işlevlerinizin benzer şekilde çalıştığını doğrulamak için Dawny33 tarafından belirtilen araçları veya diğer bazı araçları kullanabilirsiniz. Bununla birlikte, zaten işlevinize çok yüksek bir güven seviyeniz olacak ve tam olarak profilleme yapmak yerine sadece düzgün davrandıklarını doğrulamanız gerekecek.