Meteor development on AMD Ryzen 2000 and 3000 series CPU's?

I’m interested in speeding up the Meteor server dev server reload and browser re-render process by doing any of the following

  • Upgrading my CPU to a Ryzen 3000 series desktop CPU or a 4000 series laptop APU
  • Compiling a Linux kernel that is specifically optimized for my CPU
  • Compiling Firefox that is specifically optimized for my CPU (I prefer FF to Chromium for dev)
  • Trying a different distro (like clear OS)

Ryzen 3000 series CPU’s have massive caches (the entry level 3600 has 32MB L3 whereas my i5-4670k has 6MB) which makes them extremely fast for some types of code compiling. So I’m interested to find if/how it improves the Read web-app dev experience with Meteor.

I initially created a thread over at Level1Techs forums, because they have a lot of software developers who are also tech enthusiasts. Many of whom use Ryzen CPU’s.

Now I just thought it would be great to see if anyone here (coding Meteor React webapps) has moved from an old CPU to a Ryzen 2000 or 3000 series APU or CPU and can comment about what CPU you tested and how the compile times compared?

Test methodology:

  1. Your project should be on an SSD.
  2. Start your meteor server in development mode with the environment variable METEOR_PROFILE=20 (on Linux, run export METEOR_PROFILE=20 before starting your meteor dev server)
  3. Edit some file in /server/ add console.log('foo1'); Let it restart, note the time. Edit that same line to say foo2. Edit the same line to say foo3. Repeat as needed until you have a consistent build time. Let me know what CPU you’re using and what your build time is.

Future benchmarking improvement
The part of testing that I haven’t figured out is how long it takes firefox to reload and re-render the webapp, which is very important. It would be nice if there’s some kind of hook for the dev-server starting the restart process, then if the project is in development mode, the client could do a Meteor call to the server once the components have mounted. Then the server would show the total restart time including browser re-rendering.

Notes about Ryzen APU’s and Mobile CPU’s
The 2000 series APU’s use 1000 series architecture.
The 3000 series APU’s use 2000 series architecture.
The 4000 series mobile APU’s will use 3000 series architecture.

It’s a bit confusing, but when I refer to a 2000 series CPU or a 3000 series CPU I’m referring to the architecture that a desktop part of that series has. AMD’s desktop CPU’s always have their leading edge tech.

Other optimizations
I’m currently running my 4670K on stock settings, so it does speed step down to low frequencies to save power and only turbo’s to 3.8Ghz. If I overclock it to 4.2ghz and disable speed step then that is faster but also eliminates the ~100ms lag between switching CPU frequencies. I’m aware of this, but because I need to work while my desktop is powered by my UPS for extended periods during blackouts I’m opting to save some power vs 100ms + 10% CPU clockspeed improvement.

4 Likes

I recently moved from my old Linux laptop to a Linux Laptop Workstation, but it is pretty much the same tech, except with significantly more resources and this time I also opted out for distribution from the laptop maker instead of stock Ubuntu. Obviously the speed is up, but I would say that is most likely thanks to the fact that now I have more of everything compare to before.

I just went through this process not to long ago. I might go back and redo my testing and post my results. There are a few things that I found were the most important (although I do dev on Windows instead of Linux):

  1. Strong single core performance is better than more cores, this is why I ended up with a i9-9900k even if the single core performance on some chips are only a 8-12% improvement. I save and build often so this time saving adds up over time.
  2. NVMe drive with high IOPs helps a LOT. Meteor can touch thousands of files during every build and the faster it can get to read those files the better. I can imagine an Intel Optaine drive would be able to speed up builds significantly. I should test a RAM drive now that I think about it.
  3. On Windows make sure to disable defender on your Meteor project. Otherwise Windows defender will be bogging down Meteors ability to read and write tons of tiny files.
1 Like

That is a great point. Would be nice to fit that somewhere into the Meteor Guide.