/slashes

More processing power isn’t necessarily better

Monday, 3 February 2025

At work we use a unified development environment in Docker. This allows us to simulate all of the interconnected services and workloads of our production Kubernetes clusters, which is pretty awesome.

Unfortunately, to-date the virtualisation on Apple’s M-series chips hasn’t been amazing, causing some performance bottlenecks. This is often most felt on cold-starts of the virtual environment, seeding and running tests, but can also be seen during certain requests to the backend and longer-running jobs. To be clear, the performance of our production environments is not a problem - the local Docker environment simply magnifies where there might be issues to the point we can experience a slower request first-hand.

Personally I have always embraced this friction - it is a constant reminder to program for efficient processing and not to rely on raw power and auto-scaling to make up for inefficiency.

A couple of weeks ago I was upgraded from my original M1 MacBook Pro (brand new out of the box) that I was given when I first started at the company, to a MacBook Pro with an M4 Pro chip.

After the first cold start of our Docker environment I thought that perhaps it had failed somewhere along the way - it was so quick! The M4 Pro is a beast - arguably more powerful than I need - and it breezes through workloads that my previous M1 chugged through at a more leisurely pace.

The performance bottlenecks that were more apparent on my M1 are now free-flowing. The previous friction that I had become accustomed to is gone.

Whilst I am extremely grateful for the upgrade, I now need to be more mindful of performance and avoiding ‘lazy’ programming.

Email a comment