This question kept coming up as I read Get Ready A New V8 is Coming which is all about micro-optimizations in code style.
Start off writing clear code
delete o.prop vs
o.prop = undefined, classes vs
object literals. These are all micro-optimizations that, in a typical
application, you don't need to care about.
Determine if performance is your blocker
Making your application fast is a user experience concern. There's plenty of research into that. It might even be one of the killer features that brought you to Node.
The typical web app written in Node is likely fast enough already (or if it's not, you need to be looking somewhere other than micro-otimizations).
I load tested a handful of Node applications recently looking for performance and the number of connections a single server could handle. It turns out the connection limit was correlated to memory usage, not CPU performance. And for the typical node web app or API endpoint, I'm willing to guess it's the same.
Spend time building confidence in upgrades
Performance is important, but spending time doing lots of benchmarks and micro-optimizations on a memory-bound application isn't yielding high returns. Where do we spend our time?
The practical thing is to spend our time investing in ways to build high confidence that the application is working correctly. Unit tests, integration tests, deployment methods, canary deploys, whatever – these will pay for themselves when it comes to maintenance.
Once these are in place – once a team has high confidence that they can know whether any given change affects whether the application is functioning correctly – then a Node upgrade is just another change that can be tested.
At that point, upgrading to the newest version of Node becomes easy, and the application gets faster because all of the hundreds of man-years poured into V8 and Node to make them fast, without ever having to write fast-but-unmaintainable code or spend time micro-benchmarking.
And the best part is that it is a compounding win. As each version of Node gets faster, the application continues to reap the reward of being easily upgradeable. That sounds like time well spent.