You know premature optimization is the root of all evil ;)
Personally, I do optimization every now and then, when I see bottlenecks and I see that it hurts the UI. Then you run some profiling tools and optimize those hot paths.
Optimizing from the get go will probably end up with you optimizing too much and the benefits will likely be invisible (and worst of all, optimizing will surely take quite a bit of extra time, and you can also end up with buggier code).
Having said that, I use dotTrace from JetBraints. It's for .net
If you expect your project will be complex, I would advise against C/C++, since that will complicate stuff even further (note: I've actually done 13 years of C++, so I do know what I'm talking about). I would recommend C#/F# - you'd be waaay more productive there.