Deno vs Node.js: Performance comparison: Echo name over HTTPS

Mayank C
4 min readJun 10, 2020

NOTE: An update to this article is published here.

The performance comparison is updated for Deno v1.9 and Node v15.14 here: https://mayankchoubey.github.io/Deno-vs-Node-Performance/. The medium doesn’t allow updating posts through API, so this article would be updated later.

This is a series of articles that compare the performance of Deno and Node.js by running various commonly used scenarios. The reliability of Deno is another aspect that will be addressed in another series.

This is part 3 of the performance comparison series. The other parts of the series are:

  • Part 1(Hello world)
  • Part 2 (Hello world: express vs oak)
  • Part 4 (Generate one hundred v1 UUIDs)

The first and second part of the series tests the most basic hello world program. The first part ran hello world using native/std offered by Deno and Node.js. The second part ran hello world using the most popular frameworks: Oak for Deno, and Express for Node.js.

In this part of the performance comparison series, a basic program is tested which echoes the name over an HTTPS connection. The interesting part here is using HTTPS. HTTPS involves a connection setup phase, encryption, and decryption. Also, HTTPS is getting more and more popular.

For this performance testing, a very simple performance tester has been used that runs in Deno. No extra installation required. The performance tester takes all the inputs from the command line and runs the test. It allocates workers that continuously hit the server for the specified number of requests.

Here is the code for both Deno and Node.js:

Deno code is here. Node.js code is here.

Environment: The performance test is executed on MacBook Pro with 8G memory and Quad-core i5 processor. The benchmarker and SUT, both runs on the same machine. There is no network delay.

Versions: Here are the Deno and Node.js versions used for performance comparison.

The performance test is executed for different values of concurrent connections with the same value of repeat. Here are three scenarios:

  • 1 concurrent connection and 1000 repetitions
  • 10 concurrent connections and 1000 repetitions
  • 25 concurrent connections and 1000 repetitions

The following readings were taken: Total time taken, mean, median, min, and max.

TEST RESULTS

Concurrency=1

Here is the overview of the results:

And, here is the detailed distribution (10% quantiles) of the readings:

Here are the graphs:

Concurrency=10

Here is the overview of the results:

And, here is the detailed distribution (10% quantiles) of the readings:

Here are the graphs:

Concurrency=25

Here is the overview of the results:

And, here is the detailed distribution (10% quantiles) of the readings:

Here are the graphs:

Analysis

Deno is consistently faster than Node.js for HTTPS based echo name program. Though Deno is only marginally faster.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Mayank C
Mayank C

No responses yet

Write a response