🚅

DenoとNode.jsの速度を比べてみた

2021/05/07に公開
2

DenoってRust製だし、なんとなく速そうなイメージありますよね。
なので、Node.jsと比べてみました。

実装

なるべく、シンプルに、それぞれに組み込まれているライブラリのみでPOSTリクエストのボディをパースして結果をレスポンスするアプリケーションを作りました。もっとこうすれば早くなるぜというご意見などありましたらどうぞよろしくお願いします。

Node
Deno(std/http)
Deno(Native)

測定

drill という負荷テストツールを使いました。Rust製なので速そうというイメージです。

結果

実行数: 10000回

並列数: 100回

Deno(std/http) Node Deno(Native)
Time taken for tests 2.5 seconds 2.3 seconds 2.4 seconds
Total requests 10000 10000 10000
Successful requests 10000 10000 10000
Failed requests 0 0 0
Requests per second 3976.40 4255.61 4177.48
Median time per request 8ms 8ms 9ms
Average time per request 20ms 20ms 22ms
Sample standard deviation 39ms 42ms 43ms

並列数: 1000回

接続できなくてエラーになるリクエストがありました。

Deno(std/http) Node Deno(Native)
Time taken for tests 2.4 seconds 2.7 seconds 2.4 seconds
Total requests 10000 10000 10000
Successful requests 9520 9820 9582
Failed requests 480 180 418
Requests per second 4131.92 3735.30 4124.99
Median time per request 239ms 248ms 241ms
Average time per request 221ms 214ms 229ms
Sample standard deviation 170ms 83ms 79ms

感想

ということで、言ってもそんなに変わらない、というかNode.jsのほうが優秀みたいな結果になりました。
もっと早く書ける方法とかあったら教えてください。

以上です。
よろしくお願いいたします。

Discussion

上田小次郎上田小次郎

ありがとうございます!
書き直しましたが、あまり変わらず・・・。ちょっと重くするためにやってるJSON.parseとJSON.stringifyが関係してるんですかね。

記事にも反映しておきます。