To put it short, understand the limitations of what you're trying to achieve, and find out what you can afford to add and what you can skimp on a little without notice or, to add performance elsewhere.
Without limitations you're just coding, fiddling, dreaming..