Many performance problems are due to poor software design, not the Arduino hardware.
I'd say that more than a few performance problems are caused not just by software design, but system level design included.
Too often an individual or group will come up with an idea, and rush to implement it without fully understanding what the constituent parts do; they don't understand the processes each unit or area manages, nor what those processes entail, or how the inputs and outputs to and from those processes affect the system as a whole.
Instead, they just throw money and hardware down the drain.
The better approach is to design the whole system (to the best of your knowledge and ability), breaking down sub-units of the system into processes, understanding those processes and what resources they require, and how they affect other processes or units, and how others effect them in turn. Those processes may be further broken down into their own sub-processes. Re-iterate, plan, and design as needed.
Once you understand the whole, you can then intelligently, rationally, and logically decide what parts or resources are needed to accomplish the goals of each area; maybe one are needs an entire PC, while another can get by with a microcontroller, and a third only needs a 555 timer, and maybe a fourth an LED or something. Doing this will save you time, effort, and money in the long run. While it can be arduous and mind-numbing to do, if you truely want to be successful you will do it.
This isn't to say you have to go this route; but sooner or later you will find yourself in this position, and it is better to have a handle of some sort on it beforehand, rather than finding out years down the road that all of the processes have grown "organically", and no one understands what is going on or how anything works, then you have to reverse engineer everything already accomplished just to understand how you got to that point - and then you find out where the problem lies because your process maps and flowcharts look like the squiggle from "The Dot and the Line"...
What I wrote above applies equally to processes and problems like a circuit design, a piece of software, a building, a corporation, or a country and its government. Unfortunately, humans in general are all-to-poor at proper planning like this (and it shows).