What are some cool tricks to make your Node.js app faster?

4Responses

Write your response…

Here are a few things that worked for me :

  1. Use a library like async to run tasks in parallel. Don't run functions in series if they don't depend on each other. Try to parallelise tasks as much as possible.

  2. Don't use the sync version of many functions unless you really really need to. For example, fs module exposes two functions for reading files : readFile and readFileSync. As Node.js is single threaded and event driven by nature, synchronous operations can block the main thread which in turn may affect the performance of your app.

  3. Use Redis/Memcached for caching content that doesn't change frequently. This will dramatically improve your performance.

  4. Turn on Gzip compression. Today most of the browsers support gzip and there is no reason not to use it. Use a middleware like compression to enable gzip in your Express app.

  5. Utilise client side rendering. It's even better if you support both client and server side rendering. Use a library like React for building isomorphic apps.

  6. Don't store too much data in session (e.g. just store userId for logged-in users) and use Redis/Mongo store for storing session data.

  7. Use nginx as a reverse proxy. Let it serve static resources and dispatch other requests to your Node.js app.

Here is a detailed article that I wrote on SitePoint some days back. It explains all of the points in detail.

Write a reply...

Also you should always use cluster module for production Node.js apps. It forks your parent Node.js process to spawn child/worker processes and uses round robin algorithm (v0.12) to distribute incoming connections evenly among the workers. So, if you are using a multi core VPS to deploy your app you should take advantage of cluster.

Write a reply...

Upgrade to Node.js v0.12. It has undergone so many performance improvements. Functions like setImmediate() and process.nextTick() are now faster than they used to be. See : strongloop.com/strongblog/performance-node-..

Write a reply...

I created (with others) an Npmjs module called multi-level-cache that manages local and remote caches for node. The idea is that it looks in its in-memory local cache for the data (which might have expired) and then at a remote cache (which also might have expired) before looking at the DB. You can create an efficient caching hierarchy with this type of architecture to speed up your apps. I recently did Tutuapp with these techniques.

hello i am created Npmjs module

Write a reply...

Join a friendly and inclusive Q&A network for coders

  • 🖥Pick the technologies you like & read great content through your feed.
  • 💬Ask a question when you want to learn more about anything.
  • 🚀Share what you know & build your portfolio.
Sign up nowLearn more

loading ...