12 คะแนน โดย xguru 2021-10-14 | 5 ความคิดเห็น | แชร์ทาง WhatsApp
  • ทดสอบเมธอด POST ด้วยโฟลว์ API-Gateway → AWS Lambda → DynamoDB

  • ทดสอบหน่วยความจำที่ 128/256/512/1024/10240MB ตามลำดับ

  • Cold Start

→ โดยรวมแล้ว Rust เร็วที่สุด และมีเพียงที่ 128Mb เท่านั้นที่ Python ได้อันดับ 1

→ ยกเว้น Java และ .NET แล้ว ส่วนใหญ่ทำงานได้เร็ว

→ Java ไม่สามารถเริ่มต้นได้เลยที่ 128Mb แต่ GraalVM ทำได้

  • Warm Start

→ Golang และ Rust คือผู้ชนะ

→ .Net ก็แสดงประสิทธิภาพใกล้เคียงกับ Go/Rust มาก แต่ทำได้หลังจากรันซ้ำ 1k ครั้งเท่านั้น (หลัง JIT)

→ GraalVM ก็แสดงประสิทธิภาพที่เสถียรคล้าย .Net และช้ากว่า Rust/Go เล็กน้อย แต่ทำงานได้ไม่ดีในเซ็ตอัปขั้นต่ำ

→ Java ตามหลัง GraalVM มาทันที และเช่นเดียวกับ .Net Java จะได้ประสิทธิภาพหลังจากรันซ้ำ 1~3k ครั้งเท่านั้น

→ Python แสดงประสิทธิภาพที่ดีและเสถียร แต่ที่ 128MB ช้าเกินไป

→ Ruby มีประสิทธิภาพคล้าย Python แต่หลังจากผ่านไปราว 20 นาที (รันซ้ำ 15k ครั้ง) จะมี duration เพิ่มขึ้นเล็กน้อย

→ Node.js เป็นรันไทม์ที่ช้าที่สุด และมี duration ยาวที่สุดด้วย

  • เมื่อดูทั้ง Cold + Warm แล้ว Golang และ Rust คือผู้ชนะ โดยให้ผลลัพธ์ที่เร็วและเสถียรเสมอ

  • รันไทม์ที่นำมาเปรียบเทียบ: NodeJs(14.x), Python(3.9), Go(1.x), Ruby(2.7), .Net(3.1), Java (11), Rust(1.54.0), GraalVM(21.2)

5 ความคิดเห็น

 
ehlegeth 2021-10-14

ผมดูผ่าน ๆ มาแล้วเหมือนกัน แต่ดูแล้วภาพรวมแบบ Rust, Golang ~~ Python, Ruby ก็คงไม่ได้ต่างจากที่คาดกันทั่วไปมากนัก...

แต่ที่ Java ไม่มีต้นทุนในการสตาร์ต VM และถึงจะมีการใช้ JIT แล้วก็ยังช้าอยู่ ก็ค่อนข้างน่าแปลกใจนิดหน่อยครับ

Node.js เองผมก็คิดว่าหลัง JIT แล้วน่าจะเร็ว แต่ผลกลับออกมาช้าเหมือนกัน

หรือว่าเป็นเพราะสถาปัตยกรรมที่ Lambda ใช้งานอยู่ หรือพวก virtualization stack มันต่างกันหรือเปล่านะ..

 
ehlegeth 2021-10-14

มีปัจจัยที่อาจส่งผลต่อการทดสอบประสิทธิภาพอยู่มากพอสมควร ดังนั้นก็คงไม่จำเป็นต้องตีความผลลัพธ์นี้อย่างจริงจังเกินไปนัก... 555

 
eajrezz 2021-10-14

golang น่าจะเป็นผู้ชนะไหมครับ? 555

 
ehlegeth 2021-10-14

ครับ ดูเหมือนว่าจะได้ผลลัพธ์แบบนั้นนะครับ

แม้ผมจะยังไม่เคยใช้ golang ในสภาพแวดล้อมคลาวด์ แต่ก็รู้สึกว่ามันเหมาะกับสภาพแวดล้อมคลาวด์มากเลยครับ

 
codufdl 2021-10-14

Rust น่าสนใจมากจริง ๆ ครับ ผมซื้อหนังสือไว้แล้วแต่ยังไม่ได้อ่านเลย แต่ความอยากรู้อยากเห็นถูกจุดขึ้นมาเต็ม ๆ เลยครับ 555