12 คะแนน โดย xguru 2021-10-14 | 5 ความคิดเห็น | แชร์ทาง WhatsApp
<p>- ทดสอบเมธอด POST ด้วยโฟลว์ API-Gateway → AWS Lambda → DynamoDB <br /> - ทดสอบหน่วยความจำที่ 128/256/512/1024/10240MB ตามลำดับ<br /> - Cold Start <br /> → โดยรวมแล้ว Rust เร็วที่สุด และมีเพียงที่ 128Mb เท่านั้นที่ Python ได้อันดับ 1<br /> → ยกเว้น Java และ .NET แล้ว ส่วนใหญ่ทำงานได้เร็ว <br /> → Java ไม่สามารถเริ่มต้นได้เลยที่ 128Mb แต่ GraalVM ทำได้ <br /> - Warm Start <br /> → Golang และ Rust คือผู้ชนะ<br /> → .Net ก็แสดงประสิทธิภาพใกล้เคียงกับ Go/Rust มาก แต่ทำได้หลังจากรันซ้ำ 1k ครั้งเท่านั้น (หลัง JIT)<br /> → GraalVM ก็แสดงประสิทธิภาพที่เสถียรคล้าย .Net และช้ากว่า Rust/Go เล็กน้อย แต่ทำงานได้ไม่ดีในเซ็ตอัปขั้นต่ำ<br /> → Java ตามหลัง GraalVM มาทันที และเช่นเดียวกับ .Net Java จะได้ประสิทธิภาพหลังจากรันซ้ำ 1~3k ครั้งเท่านั้น<br /> → Python แสดงประสิทธิภาพที่ดีและเสถียร แต่ที่ 128MB ช้าเกินไป <br /> → Ruby มีประสิทธิภาพคล้าย Python แต่หลังจากผ่านไปราว 20 นาที (รันซ้ำ 15k ครั้ง) จะมี duration เพิ่มขึ้นเล็กน้อย <br /> → Node.js เป็นรันไทม์ที่ช้าที่สุด และมี duration ยาวที่สุดด้วย<br /> <br /> - เมื่อดูทั้ง Cold + Warm แล้ว Golang และ Rust คือผู้ชนะ โดยให้ผลลัพธ์ที่เร็วและเสถียรเสมอ <br /> <br /> - รันไทม์ที่นำมาเปรียบเทียบ: NodeJs(14.x), Python(3.9), Go(1.x), Ruby(2.7), .Net(3.1), Java (11), Rust(1.54.0), GraalVM(21.2)<br /> </p>

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

 
ehlegeth 2021-10-14
<p>ผมดูผ่าน ๆ มาแล้วเหมือนกัน แต่ดูแล้วภาพรวมแบบ Rust, Golang ~~ Python, Ruby ก็คงไม่ได้ต่างจากที่คาดกันทั่วไปมากนัก...<br /> <br /> แต่ที่ Java ไม่มีต้นทุนในการสตาร์ต VM และถึงจะมีการใช้ JIT แล้วก็ยังช้าอยู่ ก็ค่อนข้างน่าแปลกใจนิดหน่อยครับ<br /> Node.js เองผมก็คิดว่าหลัง JIT แล้วน่าจะเร็ว แต่ผลกลับออกมาช้าเหมือนกัน<br /> <br /> หรือว่าเป็นเพราะสถาปัตยกรรมที่ Lambda ใช้งานอยู่ หรือพวก virtualization stack มันต่างกันหรือเปล่านะ..</p>
 
ehlegeth 2021-10-14
<p>มีปัจจัยที่อาจส่งผลต่อการทดสอบประสิทธิภาพอยู่มากพอสมควร ดังนั้นก็คงไม่จำเป็นต้องตีความผลลัพธ์นี้อย่างจริงจังเกินไปนัก... 555</p>
 
eajrezz 2021-10-14
<p>golang น่าจะเป็นผู้ชนะไหมครับ? 555</p>
 
ehlegeth 2021-10-14
<p>ครับ ดูเหมือนว่าจะได้ผลลัพธ์แบบนั้นนะครับ <br /> แม้ผมจะยังไม่เคยใช้ golang ในสภาพแวดล้อมคลาวด์ แต่ก็รู้สึกว่ามันเหมาะกับสภาพแวดล้อมคลาวด์มากเลยครับ</p>
 
codufdl 2021-10-14
<p>Rust น่าสนใจมากจริง ๆ ครับ ผมซื้อหนังสือไว้แล้วแต่ยังไม่ได้อ่านเลย แต่ความอยากรู้อยากเห็นถูกจุดขึ้นมาเต็ม ๆ เลยครับ 555</p>