Nuxt.js: Performance of nuxt start

Created on 24 Sep 2018  路  12Comments  路  Source: nuxt/nuxt.js

What problem does this feature solve?

I did some small test on my pc with apache bench to compare setup of default nuxt or nuxt with server (e.g. express, koa, hapi )
And i got a bit surprised that nuxt start was slower than all frameworks except adonis.
I used create-nuxt-app template with everything disabled except server frameworks.

ab -c 10 -n 100000 http://localhost:3000/

koa\express\hapi\micro\feathers\native http are more or less same

Document Path:          /
Document Length:        4728 bytes

Concurrency Level:      10
Time taken for tests:   152.881 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      493000000 bytes
HTML transferred:       472800000 bytes
Requests per second:    654.10 [#/sec] (mean)
Time per request:       15.288 [ms] (mean)
Time per request:       1.529 [ms] (mean, across all concurrent requests)
Transfer rate:          3149.15 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       1
Processing:     2   15   3.3     14     119
Waiting:        2   11   3.9     10     117
Total:          2   15   3.3     14     119

Percentage of the requests served within a certain time (ms)
  50%     14
  66%     16
  75%     16
  80%     17
  90%     19
  95%     22
  98%     25
  99%     27
 100%    119 (longest request)

While nuxt start is noticeable slower

Document Path:          /
Document Length:        4738 bytes

Concurrency Level:      10
Time taken for tests:   210.901 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      494000000 bytes
HTML transferred:       473800000 bytes
Requests per second:    474.16 [#/sec] (mean)
Time per request:       21.090 [ms] (mean)
Time per request:       2.109 [ms] (mean, across all concurrent requests)
Transfer rate:          2287.43 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       1
Processing:     3   21   3.7     20     194
Waiting:        2   14   5.2     14     192
Total:          3   21   3.7     20     194

Percentage of the requests served within a certain time (ms)
  50%     20
  66%     21
  75%     22
  80%     23
  90%     26
  95%     28
  98%     30
  99%     32
 100%    194 (longest request)

This is nowhere near proper benchmark, but this result surprised me.

cc @Atinux @galvez @pi0 @clarkdo - could you try replicate it and see if it same slower for you too, guys ?

This feature request is available on Nuxt community (#c7818)
feature-request

Most helpful comment

@pi0 Ah, dang 馃檲

Current status

image

Tested on a VM with latest Ubuntu and quite decent hardware

Left: pure create-nuxt-app project
Right: Express create-nuxt-app project

Nuxt version tested: 2.3.4

Doesn't look bad at all (on this test bench).

All 12 comments

I get similar results for express (left side)/ nuxt-start (right side) and don't see a large perf. difference there. However, express seems to be a bit faster

image

Tested with https://github.com/nuxt/codesandbox-nuxt and https://github.com/nuxt/create-nuxt-app/blob/master/template/server/index-express.js for express.

Maybe because of compression? :thinking:
We should try it with disabled compression.

@manniL just noticed there's a diff in _Document Length_ between your tested versions which might influence results to some degree?
Note that express on the left is 12.9% bigger though still performs slightly better.

@hartmut-co-uk That could support my theory: Express has no compression "by default", Nuxt has. Compression -> smaller size but takes longer per request

@manniL When using express (programmatic usage) we still register nuxt middleware stack which includes compression and other middleware.

@pi0 Ah, dang 馃檲

Current status

image

Tested on a VM with latest Ubuntu and quite decent hardware

Left: pure create-nuxt-app project
Right: Express create-nuxt-app project

Nuxt version tested: 2.3.4

Doesn't look bad at all (on this test bench).

maybe worth checking / lining um the text on the / path to be identical - while the size is close enough on this run I guess 馃槃

Would you have time adding / giving the _koa_ starter a go as well @manniL? 馃檱

@hartmut-co-uk
image

I'd close the issue for now as it looks decent. What do you think @pi0 @Atinux @aldarund ? 馃

Thanks a lot @manniL!
+1 for closing the issue

This feature-request has been cancelled by @Atinux.

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

msudgh picture msudgh  路  3Comments

vadimsg picture vadimsg  路  3Comments

nassimbenkirane picture nassimbenkirane  路  3Comments

bimohxh picture bimohxh  路  3Comments

o-alexandrov picture o-alexandrov  路  3Comments