Rico Mariani's Performance Tidbits

Implying no warranties and conferring no rights: "AS IS" since 1988

Browse by Tags

Tagged Content List
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: A few words about Micro-Benchmarks

    It’s been a long time since I included my “this discussion is only approximately correct” disclaimer so I’ll just preface it here. In the interest of space and clarity, this discussion is only approximately correct. OK, now we can move on… I love micro-benchmarks. Really. I rely on micro-benchmarks...
  • Blog Post: Why you really want to avoid catching and rethrowing exceptions

    I like processes that simply drop-dead fail when they have an unrecoverable fault. Trying to continue is often dangerous and unlikely to actually help anyone. This policy is all fine and well but in all cases it is vital that the “death” stack of a process be the true problem, not a generic error handler...
  • Blog Post: Visual Studio: Why is there no 64 bit version? (yet)

    Disclaimer: This is yet another of my trademarked "approximately correct" discussions From time to time customers or partners ask me about our plans to create a 64 bit version of Visual Studio. When is it coming? Why aren’t we making it a priority? Haven’t we noticed that 64 bit PC’s are very popular...
  • Blog Post: Performance Advice, Southern Style

    While I was at PDC2008 I was introduced to Keith and Woody -- pretty soon there was a microphone in front of me and we were doing a podcast. Now I already liked these guys but when they used a picture of me from about 1998 I really liked them a lot more. I wish I still looked like that :). And the...
  • Blog Post: Linq Compiled Queries Q & A

    I did a series of postings on Linq Compiled Queries last year, I recently got some questions on those postings that I thought would be of general interest. Q1: Why use the 'new' keyword in this snippet? var q = from o in nw.Orders select new {o.everything …}; A: If you did just : var...
  • Blog Post: Rico's Instrumentation Aphorisms

    A few months ago, Mary Gray of the Management Practices Team came to talk to me about good practices for creating performance counters and doing measurements generally. She interviewed me on the topic for about an hour and was madly scribbling notes the whole time while I talked a mile a minute. What...
  • Blog Post: Performance Threat Models

    I've been meaning to post this for ages and somehow I kept forgetting. J.D. and I have long thought that many of the techniques used to do a security threat model are actually directly applicable to doing performance analysis as well. The idea of threats and mitigations is quite general but more importantly...
  • Blog Post: Database Performance, Correctness, Compostion, Compromise, and Linq too

    Introduction and Disclaimer Regular readers of my blog are already familiar with my goal to provide brief and useful information that is approximately correct and that illustrates some key truths. Most of the time my articles are not authoritative and that is especially true in this case. I am certainly...
  • Blog Post: Caching Redux

    I got some interesting questions about how to build good middle-tier caches in my inbox last week. I cleaned up the responses a little bit and I'm posting them here because they're actually pretty general. I've written about this before but some things merit repeating :) Here's what I wrote: If I had...
  • Blog Post: Krzysztof Cwalina on Framework Design

    Krzysztof has been recorded for MS Research and gives an excellent presentation on framework design. The details are on his blog here. Lots of great notes. Contributing annotations to his book on the same subject was one of the more fun things I did last year. And Brad's contributions were not to shabby...
  • Blog Post: Memory leaks 101: Objects anchored by event generators

    This problem actually comes up pretty often so I thought I'd write a little article about it, and a couple of approaches to solving it. Basically any time you take an object "Your Object" whose life you want the GC to manage and then create a reference to it from a long lived object you’ve “anchored...
  • Blog Post: Avoiding Coding Pitfalls with Performance Signatures

    On Friday of last week I gave this presentation at the Computer Measurements Group CMG2006 conference( http://www.cmg.org ). I had previously alluded to it in this posting and I have been waiting to write about it until after the conference. So for the benefit of those of you who couldn't be there; here...
  • Blog Post: Taming the CLR: How to Write Real-Time Managed Code

    I've actually been meaning to write about real time applications for ages so when I was asked to give a talk at MS Gamefest ( http://microsoftgamefest.com ) I jumped at the opportunity to give myself a hard reason to do the homework. Last Tuesday I gave that talk and below are the slide contents plus...
  • Blog Post: Performance Lifecycle

    I get many opportunities to review documents and processes in the course of my job, and sometimes they’re not even about performance. :) About 2 years ago I started seeing a goodly number of security related documents; and now increasingly I see things about the Security Development Lifecycle. The...
  • Blog Post: How To Do A Good Performance Investigation

    I find that sometimes people have difficultly just getting started when doing a performance analysis – meaning they’re faced with a potentially big problem and don’t know where to begin. Over the years many people have come to me under those circumstances and asked me how I would approach the problem...
  • Blog Post: Fat Free Bytes? Not here!

    I'm going to have a little bit of fun with this one so bear with me. :) Sometimes I talk to groups that have adopted managed code and they've gone a bit oopaholic. Or maybe even a lot oopaholic. (See this video if you would like to hear a little more about the perils of oopaholism). Oopaholics are...
  • Blog Post: Giving your customers a good deal

    Earlier today someone suggested that I read this entry from Cyrus . As a performance guy people basically expect me to veto every new idea that might grow the size of anything anywhere. I guess I surprise them when I don't. The fact is that it's very hard for me to help make any specific decisions about...
  • Blog Post: Designing .NET Class Libraries: CLR Performance Tips

    Last year I was one of the speakers at some internal training on how to build good libraries. We liked the series enough that we decided to tidy it up and offer it all as advice to the world. The talks have been coming out one a week for several weeks now and today mine comes out. I invite you to check...
  • Blog Post: Collections too slow? When to write your own basic types

    As usual there isn’t really one set of rules that will always guide you to making the right decisions but I’d like to offer some approximately correct guidance to help you to decide when you should decline the standard menu and instead cook up your own basic types. Rule #1: Don’t do it Seriously, who...
  • Blog Post: When to call GC.Collect()

    One of my first postings was this one: Two things to avoid for better memory usage in which I gave some approximately correct advice (is there any other kind? <g>) about using GC.Collect(). I still stand by this advice but I think maybe this is a good time to expand on it. So now I offer you Rico...
  • Blog Post: Tidbits on video

    http://channel9.msdn.com has a video including a little interview with me that was recently posted. As usual I don't say anything profound but you might like it anyway :) The specific article is here: http://channel9.msdn.com/ShowPost.aspx?PostID=30134#30134
Page 1 of 3 (55 items) 123