การตอบสนองของ Dawny33นั้นดี แต่ฉันจะเริ่มก่อนหน้านี้ในกระบวนการพัฒนา
คอยดูสภาพแวดล้อมคลาวด์ของคุณเพื่อให้แน่ใจว่าฟังก์ชั่นของคุณทำงานตามที่คุณคาดหวัง (รวมถึงฟังก์ชั่น "การผลิต" ซึ่งอาจทำงานกับชุดข้อมูลอื่น) เป็นสิ่งสำคัญเพราะมันอาจเปิดเผยสิ่งที่เป็นไปไม่ได้ ทดสอบชุดข้อมูล
อย่างไรก็ตามฉันจะบอกว่าการทดสอบประสิทธิภาพที่คุณทำเพื่อการเพิ่มประสิทธิภาพควรเริ่มจากเครื่องของนักพัฒนาซอฟต์แวร์ หรืออย่างน้อยก็จากสภาพแวดล้อมท้องถิ่นก่อนที่จะผลักดันไปยังคลาวด์
เหตุผลที่ฉันพูดอย่างนั้นก็คือในขณะที่ AWS Lambdas นั้นยอดเยี่ยมในหลาย ๆ จุดความจริงที่ว่าคุณไม่มีการควบคุมเต็มรูปแบบบนเซิร์ฟเวอร์จะจำกัดความสามารถในการใช้เครื่องมือของคุณ ฉันไม่ได้บอกว่าการใช้เครื่องมือเป็นไปไม่ได้เมื่ออยู่ในที่ที่ไม่มีเซิร์ฟเวอร์ แต่ให้ลองดูว่าคุณมีซีพียูขัดจังหวะกี่ตัว (และจำนวนที่เกิดจากรหัสของคุณ ) เพื่อความสนุก;)
ดังนั้นสิ่งที่ฉันแนะนำและนี่ไม่ได้ จำกัด อยู่ที่ serverless คือการเริ่มต้นการทำโปรไฟล์ก่อน การทำโปรไฟล์ NodeJS สามารถทำได้ด้วยเครื่องมือต่าง ๆ มากมาย, NewRelic, dynatrace และ AppDynamic นอกจากนี้ยังมีผู้เล่นที่เล็กกว่าบางคนเป็นเพียงแพคเกจ NPM สำหรับติดตั้ง (เช่น Nodefly) นอกจากนี้ยังเป็นไปได้ที่จะทำ NodeJS บางตัวโดยไม่ต้องใช้เครื่องมือเพิ่มเติมใด ๆ เนื่องจากมี profiler ที่สร้างขึ้นในเครื่องยนต์ V8 เอกสารนี้จาก NodeJS จะช่วยให้คุณเริ่มต้นได้
เครื่องมือใดก็ตามที่คุณเลือกคุณต้องการติดตั้งภายในเครื่องและรวบรวมข้อมูลการทำโปรไฟล์ ที่อาจเกี่ยวข้องกับการเรียกใช้ตัวแทนหรือรวมถึงแพคเกจใน package.json ของคุณ คำแนะนำของเครื่องมือของคุณจะบอกวิธีการติดตั้ง ผู้สร้างโปรไฟล์ที่ดีจะแจ้งให้คุณทราบว่าคุณใช้หน่วยความจำและ CPU มากแค่ไหน เครื่องมือที่ดีกว่าจะช่วยให้คุณเข้าใจว่ามีการโทรทางไกลกี่ครั้งและใช้เวลานานเท่าใด
ใช้ข้อมูลการทำโปรไฟล์ที่เครื่องมือให้คุณระบุถึงปัญหาคอขวดและระบุที่อยู่ คุณสามารถสร้างโปรไฟล์ได้ไม่ จำกัด จำนวน บางคน (บ้า?) จะดูการเรียกระบบของฟังก์ชั่นที่สำคัญที่สุดของพวกเขา คุณอาจต้องทำสิ่งนั้นถ้าคุณต้องการโกนนาโนวินาทีของฟังก์ชั่นของคุณ (แต่แล้วบางที AWS Lambda ไม่ใช่ตัวเลือกที่ดีที่สุดในการเริ่มต้นด้วย)
นอกจากนี้ยังเป็นที่น่าสังเกตว่าในตอนนี้ฉันยังไม่ได้พูดถึงอะไรที่เฉพาะเจาะจงกับ AWS Lambda นั่นเป็นเพราะการเพิ่มประสิทธิภาพของคุณมักจะไม่เฉพาะ AWS Lambda (หลังจากทั้งหมดในกรณีที่ไม่มีเซิร์ฟเวอร์คุณไม่ควรกังวลเกี่ยวกับเซิร์ฟเวอร์ / สภาพแวดล้อม)
ตรวจสอบให้แน่ใจว่ารหัสของคุณทำงานไม่เพียง แต่จะทำงานได้ตามที่คุณคาดหวัง อย่าปรับให้เหมาะสม แต่อย่าลืมเก็บ CPU และการใช้หน่วยความจำ อาร์เรย์ 2MB ควรเติบโตเป็น 10MB จริงหรือไม่เมื่อคุณจัดเรียง อาจจะไม่.
จากนั้นคุณจะสามารถใช้เครื่องมือที่กล่าวถึงโดย Dawny33 หรือเครื่องมืออื่น ๆ เพื่อยืนยันว่าฟังก์ชั่นของคุณทำงานคล้ายกันเมื่อปรับใช้กับแลมบ์ดา อย่างไรก็ตามคุณจะมีความเชื่อมั่นในระดับสูงในการทำงานของคุณอยู่แล้วและจะต้องตรวจสอบว่าพวกเขาทำงานอย่างถูกต้องหรือไม่เท่านั้น