Question: Like most of us, I am a big fan of improving efficiency of code. So much so that I would rather choose fast-executing dirty code over something which might be more elegant or clean, but slower. 

Fortunately for all of us, in most cases, the faster and more efficient solutions are also the cleaner and the most elegant ones. I used to be just a dabbler in programming but I am into full-time development now, and just started with C# and web development. I have been reading some good books on these subjects but sadly, books rarely cover the finer aspects. Like say, which one of two codes which do the same thing will run faster. This kind of knowledge comes mostly through experience only. I request all fellow programmers to share any such knowledge here.

Here, I'll start off with these two blog posts I came across. This is exactly the kind of stuff I am looking for in this post:

* [Stringbuilder vs String performance analysis](http://blog.maartenballiauw.be/post/2008/02/Code-performance-analysis-in-Visual-Studio-2008.aspx)
* [The cost of throwing an exception](http://www.codinghorror.com/blog/2005/08/tryparse-and-the-exception-tax.html)

P.S: Do let me know if this kind of thing already exists somewhere on this site. I searched but couldn't find, surprisingly. Also please post any book you know of that covers such things.

P.P.S: If you got to know of something from some blog post or some online source to which we all have access, then it would be better to post the link itself imo.

Answer: 
One good resource for .net related performance info is [Rico Mariani's Blog](https://learn.microsoft.com/en-us/archive/blogs/ricom/)
Good program architecture give you a lot better optimization, than optimized function.  

The most optimization is to avoiding all if else in runtime code, put them all at initialize time.  

Overall, **optimization is bad idea**, because the most valuable is readable program, not a fast program.