Redwood dev server performance community poll

I wanted to understand how everyone’s projects perform in development. We are all working on applications of different sizes with laptops/computers with different specs and setups.

So I thought it would be useful to capture a poll to get an understanding.

To avoid making a poll for literally everything - please vote below for the polls and also provide a description of your setup as well as a comment.

Such as

  • Make/Model
  • Desktop or Laptop
  • CPU
  • RAM
  • HDD/SSD
  • OS
  • Shell environment

And anything else you think may be important to your wicked speed or poor performance.

How long does it take for your API server to import?

image

The value where it says “Took z ms” under “x files generated”. z is the value here

  • < 1s
  • < 1 - 3s
  • < 3 - 6s
  • < 6 - 10s
  • < 10s+

0 voters

How many API type files are generated in your project?

image

The value where it says “x files generated”. X is the value here.

  • < 50
  • 50 to 100
  • 100 to 200
  • 200 to 300
  • 300+

0 voters

How many webpack modules are compiled?

The value where it says “… x modules”. X is the value here.

  • < 50
  • 50 to 100
  • 100 to 200
  • 200 to 300
  • 300+

0 voters

How long does it take for your webpack server to compile?

  • < 1s
  • 1 to 3s
  • 3 to 6s
  • 6 to 10s
  • 10 to 20s
  • 20 to 40s
  • 40 to 60s
  • 60+

0 voters

When you make a file change how long does it take for the server to build?

image

The line where it says “Building … took x ms”. X is the value here in seconds.

  • < 1s
  • 1 to 3s
  • 3 to 6s
  • 6 to 10s
  • 10 to 20s
  • 20 to 40s
  • 40 to 60s
  • 60+

0 voters

When you make a file change in the API how long does it take for the server to import?

image

  • < 1s
  • 1 to 3s
  • 3 to 6s
  • 6 to 10s
  • 10 to 20s
  • 20 to 40s
  • 40 to 60s
  • 60+

0 voters

1 Like

Relocating from the old post:

Love this poll by the way! Very interested in everyone else’s experiences. From 0.35 to 0.36 I’ve noticed a substantial increase in my app’s API-side’s build process - mostly at the “Importing Server Functions” stage. Is this a just me thing or…?

My computer’s specs:

  • Desktop
  • CPU: Intel i5-4460 (3.2ghz)
  • RAM: 16GB
  • SSD (500GB 860 Evo for the curious)
  • Windows 10 (Home)
  • PowerShell
1 Like
  • Make/Model : Apple MacBook Pro
  • Desktop or Laptop : Laptop
  • CPU : Apple M1
  • RAM : 16GB
  • HDD/SSD : SSD
  • OS : MacOS Big Sur
  • Shell environment : Zsh

I take the opportunity to compare the performance of my desktop vs laptop. Windows with WSL 2 take much more RAM to be stable than my MacBook.

1 Like

@simoncrypta wow your m1 laptop is flying! Is your current votes for the m1? What’s your WSL2 timings?

Specs:

Desktop
CPU: i5-8400 CPU @ 2.80GHz
RAM: 16GB
SSD
Windows with Gitbash.

1 Like

M1 is definitely really smooth for this type of work. With WSL2 I have of course better performance with the Ryzen 5 and 32Gb, I will say between 50%-100% faster, but that only since I add 16Gb of RAM, memory was a big bottleneck for performance. Also, WSL is slow to start, and you can not use by example Github Desktop (maybe I can today with WSLg that I just install). Overall I like WSL and I think Microsoft still work hard on it. I was a big Linux fan for a long time, but having the ecosystem of Windows for gaming and have Linux for work without dual boot is huge.

  • Make/Model : Dell XPS 8930
  • Desktop or Laptop : Desktop
  • CPU : Intel(R) Core™ i7-9700 CPU @ 3.00GHz 3.00 GHz
  • RAM : 32.0 GB (31.8 GB usable)
  • HDD/SSD : SSD
  • OS : Windows 10
  • Shell environment : Git Bash (Not using WSL)

That’s really interesting observation. I initially had poor performance in WSL2 and tried Gitbash, and found it was just as bad. Perhaps my RAM and SSD are not as fast as I thought. I do have 16gb ram but I had hoped using Gitbash would mitigate that as it should be less resource hungry.

Curious what is your exact file count for the types? Have you seen your timing increase linearly as the file count goes up?

The way that WSL manage the RAM is really bad, you need a lot more that you will without WSL, but having near the same environment than prod is really nice.

I have 71 files… Let’s make tests to see if timing increase linearly!

Raccoon

  • 71 files generated
  • Took 809 ms
  • Starting API Server… Took 4 ms
  • /graphql 1774 ms
  • /airtable 23 ms
  • /auth 1 ms
  • /healthz 1 ms
  • /imagekit 0 ms
  • … Imported in 1800 ms
  • webpack 5.51.1 compiled successfully in 11015 ms

example-blog

  • 42 files generated
  • Took 886 ms
  • Starting API Server… Took 4 ms
  • /graphql 2810 ms
  • … Imported in 2811 ms
  • webpack 5.51.1 compiled successfully in 8741 ms

example-todo

  • 18 files generated
  • Took 681 ms
  • Starting API Server… Took 5 ms
  • /graphql 1478 ms
  • … Imported in 1478 ms
  • webpack 5.51.1 compiled successfully in 4512 ms

Plain CRWA

  • 10 files generated
  • Took 592 ms
  • Starting API Server… Took 4 ms
  • /graphql 1464 ms
  • … Imported in 1464 ms
  • webpack 5.51.1 compiled successfully in 4461 ms

All these tests are made on the MacBook Pro M1 16GB
This time webpack used 1 more sec than my previous test, maybe because I had more tab open ?

It will be interesting to have a graph to easily see what’s have impact on timing and how much.

1 Like

Yea totally - I wonder what makes the biggest impact on timings. No doubt many factors go into it, such as SSD speed, CPU speed and performance and memory too. But would be interesting to see it as a graph.

PS - ive added a new poll called How many webpack modules are compiled? to bring context to the webpack timing poll

If you have not already added - please add your vote there too!

I just voted, timing one of my projects on my Dell XPS13 2021 laptop with 16 GB ram and a core i7 cpu.
GitBash in mintty

I wasn’t sure exactly what to answer for this question

You have “javascript … 2008 modules” at the top and “modules by path ./src/ … 176 modules” further down. Are you looking for the 2008 or 176 number?

This is what my output looks like for me

web | asset robots.txt 24 bytes [emitted] [from: public/robots.txt] [copied]
web | Entrypoint app 3.2 MiB (3.12 MiB) = static/js/runtime-app.bundle.js 48.8 KiB static/js/app.bundle.js 3.15 MiB 3 auxiliary assets
web | orphan modules 1.31 MiB [orphan] 952 modules
web | runtime modules 32.7 KiB 17 modules
web | cacheable modules 2.83 MiB
web |   modules by path ../node_modules/ 2.61 MiB 756 modules
web |   modules by path ./src/ 228 KiB
web |     modules by path ./src/components/ 124 KiB 15 modules
web |     modules by path ./src/pages/ 34.2 KiB 4 modules
web |     modules by path ./src/*.css 25.3 KiB 4 modules
web |     modules by path ./src/*.js 10.9 KiB 3 modules
web |     modules by path ./src/contexts/ 17.1 KiB 3 modules
web |     modules by path ./src/utils/*.js 4.12 KiB 3 modules
web |     ./src/providers/RedwoodReactQueryProvider.tsx 8.82 KiB [built] [code generated]
web |     ./src/layouts/PageLayout/PageLayout.js 3.27 KiB [built] [code generated]
web |     ./src/fonts/Quicksand-Regular.ttf 87 bytes [built] [code generated]
web | webpack 5.51.1 compiled successfully in 11540 ms
1 Like

Thanks Tobbe! Regarding your question, I didn’t even notice the number above!

@peterp would you perhaps know which number would be most relevant?

Here is the comparison with WSL2
Made with example-blog

Desktop Ryzen 5 3600 6-core 32 GB :

  • 42 files generated
  • Took 496 ms
  • Starting API Server… Took 3 ms
  • /graphql 1423 ms
  • … Imported in 1424 ms
  • webpack 5.51.1 compiled successfully in 7202 ms

I’m not a hardware geek, but what it seems to use to most resource for dev server is the write/read memory RAM. That explain why the M1 have excellent performance. So the speed of RAM have a big impact for this type of work (it’s 3600Mhz for the desktop, and it’s supposed to be 4266MHz for the MacBook), with also the processor speed single-core (that’s why the desktop have better performance).

Oh interesting. What’s your single core speed on the M1 vs desktop?

I wonder if an upgrade such as a M.2 ssd would make a difference too.

Oh interesting. What’s your single core speed on the M1 vs desktop?

I think is really hard to compare CPU of different architecture, normally M1 have 3200Mhz clockspeed vs 3600Mhz for the AMD Ryzen (up to 4200Mhz on turboboost). Single core peak performance is better on the M1, but is not enough to compare 1 to 1. It’s also worth mentioning that the M1 consume only 15.1W vs 65W and don’t have real cooling system.

I wonder if an upgrade such as a M.2 ssd would make a difference too.

Max transfer rate on dev server is 60Mb/s, since traditional HDD go up to 160Mb/s I don’t think you will see any difference. It’s basically a job between the CPU and RAM.

1 Like
Make/Model: MacBookPro Mid 2015
Laptop
CPU: 2,2 GHz Quad-Core Intel Core i7
RAM: 16GB
HDD/SSD: SSD
OS: MacOS Catalina
Shell environment: zsh
1 Like

looks at RAM prices and the max speed one can afford

Now I’m super curious about what @janmei is building!! :eyes:

  • Make/Model : Dell Precision July 2021
  • Desktop or Laptop : Laptop
  • CPU : core i7 vPRO
  • RAM : 16GB
  • HDD/SSD : SSD
  • OS : Budgie
  • Shell environment : Zsh
2 Likes