"It is a paradox that we still have many software products with frustratingly long response times while microprocessor performance has grown exponentially for decades. In most cases, the reason for unsatisfactory performance is not poor microprocessor design, but poor software design. All too often, the culprit is extremely wasteful software development tools, frameworks, virtual machines, script languages, and abstract many-layer software designs. The growth in hardware performance according to Moore's law is slowing down as we are approaching the limits of what is physically possible. Instead, Wirth's law claims jokingly that software speed is decreasing more quickly than hardware speed is increasing.
In this situation, software developers should be advised to pick the low-hanging fruits rather than relying on still faster microprocessors: Avoid the most wasteful software tools and frameworks, and avoid feature bloat. Reducing the level of abstraction in software development will actually make it easier to understand the performance consequences of different code constructs."
— Agner Fog
https://www.agner.org/optimize/optimizing_cpp.pdf