Senior Consultant Karl Roberts is constantly looking at ways to improve his personal hardware to ensure an optimised performance. In his recent blog post featured below, he discusses the issues of premature optimisation when the solution could be in the hardware itself.
As a developer, I’ve often seen (and been the culprit) of premature optimisation. Developers, in our desire to write fast software often, mistakenly, sacrifice readability, maintainability and correctness in favour of speed.
“Premature optimization is the root of all evil… in programming.”
Donuld Knuth, Computer Programming as an Art (1974)
It is far better to have clean code and optimise where necessary after measuring everything in a production like environment.
In fact, it may not be necessary to mess up the code, perhaps the solution is to run on better hardware.
I recently upgraded my laptop after 4 years of usage, and as well as the usual smug appreciation of my new hardware, I am blown away by the performance hike. Double your speed with a hardware upgrade.
Like watching grass grow we don’t usually notice the ongoing benefit of the advances in computer hardware until you get to see it in time-lapse. Check out the video in my blog page showing the difference in speed between my old and new laptop.
My old laptop was no donkey. A Samsung New Series 9 and yet next to my new Dell XPS 9560 it looks positively pedestrian.
|Feature||Samsung NP900X4C||Dell XPS 9560|
|CPU||3rd gen i7-3517U||7th gen i7-7700HQ|
|CPU speed||3M cache, 1.7 GHz||6M cache, 3.8 GHz|
|Memory||16Gb DDR3 (1600MHz)||16GB DDR4-2400MHz|
|Disk||Samsung 840 m.2 SATA SSD||Samsung PM961 m.2 PCIe SSD|
I have the same version of Ubuntu 16.04 with the latest patches running on both machines, and I downloaded the same project I’m currently working on. I then started a Maven build side-by-side to compile and package the whole application I’m currently working on.
My new laptop is almost twice as fast as my previous fast laptop.
New Dell XPS 9560 => 12.329 seconds vs old Samsung “New” series 9 => 21.365 seconds
A 12 second pause is no way as distracting as a 20 second pause, allowing me to stay in context and keep coding.