Rico Mariani's Performance Tidbits

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

Browse by Tags

Tagged Content List
  • Blog Post: A systematic approach to finding performance regressions using overweight analysis

    I have been using this approach to do systematic analysis of performance regressions for several years now. I came up with it while looking at some tricky problems in Internet Explorer about three years ago and it’s served me well since then. The idea is pretty a simple one but it gives surprisingly...
  • Blog Post: My Universal Performance Problem Advice

    I get asked for recommendations a lot. Most of the time I have little to no data when asked to perform this sort of divination. But as it turns out I have this ready-to-go universal advice that works for me, so I'm able to give the same recommendation all the time even with no data! Handy, huh? Here...
  • Blog Post: Using telemetry to reveal, prevent, and act on real problems in the wild

    I hesitate to bring this up but there’s no sense hiding it. For the last year I’ve been the development lead for the Internet Explorer Performance Team. We’ve done some really cool things I’m super proud of. Like recently this gem . However, things are usually not so rosy in...
  • Blog Post: Performance Quiz #14: Memory Locality etc. Bonus Round!

    [Note: I accidently pasted an x64 result in place of an x86 result. As it happens the point I was trying to make was that they were very similar, which they are, but they aren't identical... corrected.] Thanks to some careful readers I discovered why the shuffling factors discussed in my previous...
  • Blog Post: Performance Quiz #14: Memory Locality, x64 vs. x86, Alignment, and Density

    [ Note: Mystery of the shuffling is solved, the rand() method I was using returns only numbers between 0 and 32k, so shuffling was ineffective in large array sizes. I will post an update. Thank you Ryan! See the new entry for the updated results. ] It's been a very long time since I did a...
  • Blog Post: You don't have to write it (all) first...

    It seems like I get pretty much the same questions all the time. A common one is, "Rico can you tell me if it would be ok for me to use <technology> to solve this <problem>? How much does <technology> cost anyway?" The answer is (nearly) always the same: "How the hell should I know...
  • Blog Post: To preload or not to preload...

    Q: My application starts slowly, I want to preload it to avoid that problem. Should I be worried? A: Well, in short, there are lots of concerns. Preloading things you may or may not need is a great way to waste a ton of memory and generally make the system less usable overall. I’m often...
  • Blog Post: 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 and therefore...
  • Blog Post: 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...
  • Blog Post: 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...
  • 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: 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...
  • Blog Post: 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...
  • 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: 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. http://www.youtube.com/watch?v=MMsQYjYlBEo It's rule #1 http://blogs...
  • 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: Variability in Benchmarks

    I’m not especially a great fan of micro-benchmarks, they’re handy as a compliment to the larger tests but I often find that they lead to confusion because they are interpreted as reflecting reality when nothing could be farther from the truth. The fact is that micro-benchmarks are intended to magnify...
  • Blog Post: Visual Studio 2010 Performance Part 3: A Technical Update

    If I have any readers left out there, they might be interested to know what it is I’m up to this month. It’s a very important something. It’s... my vacation! Ok, seriously, I am in fact on vacation and I’ll be out for the next few weeks mostly because I’ve been working really hard on VS performance for...
  • 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: Visual Studio 2010 Performance Part 2: Text Editor

    Part 1 of this series talked about the startup problems we face. In Part 2, I want to talk about the editor. Many people have reported that editing with the new editor is slower. I’ve experienced the same thing myself so I certainly do not want to accuse people of hallucinating but I thought it might...
  • Blog Post: Visual Studio 2010 Performance Part 1: Startup

    I want to start by thanking everyone that has commented on the Beta (by posting their thoughts here or elsewhere) for doing so. Please keep those comments coming! They have a great impact on the senior leadership here and they are excellent rallying points for all the teams. They really do make a difference...
  • Blog Post: Visual Studio 10 -- Your Performance Feedback plus Beta 1

    At Microsoft you can't say you're excited about anything you have to say that you're "super excited". I don't know why that's just the way it is . So, I'm happy to say that I'm super excited about the release of Beta 1 and I encourage you all to visit Jason's blog (again) to see screen-shots and get...
  • Blog Post: Visual Studio -- working on performance

    Jason has a new posting on the progress of Visual Studio and I wanted to chime in myself. Some people have been wondering what I’ve been up to… I think you’ll be happy to hear that about 2 months ago I put down a bunch of my long term planning responsibilities so that I could work on Visual Studio performance...
Page 1 of 8 (187 items) 12345»