On adopting high end perf tools to study micro-architectural phenomena

Huge words of caution: you can bury yourself in this kind of stuff forever and for my money it is rarely the way to go.  It’s helpful to know where you stand on CPI for instance but it’s much more typical to get results by observing that you (e.g.) have a ton of cache misses…

1

Software Performance for Metro Style Applications

With the Windows Consumer Preview out the door, I thought it would be interesting to write something about creating great performing Windows applications.  I hope to have a lot more to say about this in the future but I think really the most important things I have to say are more inspirational rather than informational…

6

Coding in Marble (Part 2)

I thought I’d follow up on my last technical post with a few extra details about the Marble pattern, despite the name of the article I mostly talked about the Wood pattern.  I guess perhaps this is timely because the use of Promises to represent asynchronous operations is increasingly popular,  but these notions are not…

2

Coding in Marble

I wish I could remember where I first read it because perhaps it deserves attribution.  But many years ago I read about the two world views of physicists and they resonated with me.  One world view is that prescibed by things like General Relativity and Maxwell’s Equations.  These have, in some sense a great mathematical beauty…

6

Ngen or not? The rules haven’t changed very much since 2004

I still get questions that amount to “should I ngen my <something>” from time to time and the best answer I can give is still “it depends.”  I wrote this article many years ago, and I’d say it’s still pretty accurate: http://blogs.msdn.com/b/ricom/archive/2004/10/18/244242.aspx Essentially the situation is this: if you ngen your IL then of course…

3

Improving .NET Application Performance and Scalability

This series can still be found here: http://msdn.microsoft.com/en-us/library/ff649152.aspx While some of the content is stale since it refers specifically to .NET 2.0 I think all of the conceptual content broadly applicable (even beyond managed code systems to software systems generally.) If you’re looking for it some time in the future you can find it again easily…

0

Performance and Design Guidelines for Data Access Layers

Many problems you will face are actually the building data access layer, sometimes thinly disguised, sometimes in your face; it’s one of the broad patterns that you see in computer science – as the cliché says: it keeps rearing its ugly head. Despite this, the same sorts of mistakes tend to be made in the…

5

Performance Guidelines for Properties

I can’t say I’ve asked the framework guidelines folks about this but I’m fairly sure there would be a lot of agreement from the guidelines gurus; so in the spirit of approximately correct advice I give you Rico’s Guidelines for Performant Properties. I should start by saying I wish more people just used fields instead…

12

Measure!

I know I haven’t posted for a while; I’m hoping that will change soon.  However in the mean time my daughter forwarded me this link because she thought it was cute. The thing is, she didn’t realize it should be my theme song. https://www.youtube.com/watch?v=MMsQYjYlBEo It’s rule #1 http://blogs.msdn.com/b/ricom/archive/2003/12/02/40779.aspx Now even Sesame Street agrees!  It must…

2

Less Loosely Coupled Than Meets The Eye

I don’t know that it is possible to write anything like a unitary software system in a way that is truly loosely coupled.   It’s not that you can’t make boxes and lines that are cleanly separated in all sorts of pretty ways, though that’s hard enough.  The problem is that even if you manage to do…

6