12 ポイント 投稿者 xguru 2021-10-14 | 5件のコメント | WhatsAppで共有
<p>- API-Gateway → AWS Lambda → DynamoDB フローで POST メソッドをテスト <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 のすぐ後ろ。Java も .Net と同様に 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>ざっと見ただけですが、<br /> Rust、Golang ~~ Python、Ruby という構図は、一般的な期待と大きくは違わないように思えますし…<br /> <br /> Java が VM の起動コストがなく、JIT が適用されても遅いのは少し意外ですね。<br /> Node.js も JIT 後は速いと思っていましたが、遅い結果が出ましたね。<br /> <br /> Lambda が動作するアーキテクチャや仮想化スタックなどが違うからなのでしょうか…</p>
 
ehlegeth 2021-10-14
<p>パフォーマンステストには影響を与えうる要素があまりにも多いので、結果をあまり深刻に受け止めなくてもよさそうな気もしますが……(笑)</p>
 
eajrezz 2021-10-14
<p>golangが勝者ではないでしょうか?(笑)</p>
 
ehlegeth 2021-10-14
<p>はい、そのような結果のようですね。<br /> クラウド環境で golang を使ったことはありませんが、クラウド環境にぴったり合っている気がします。</p>
 
codufdl 2021-10-14
<p>Rust、すごく魅力的ですね。買っておいたのに読んでいなかった本ですが、好奇心に一気に火がつきますね(笑)</p>