What you really need to know about regular expressions before using them

If you want to use regular expressions in production code the most important thing you must know about how these things are matched is that there are three general approaches to doing it.  They have different performance characteristics and it is absolutely vital that you know which approach the library you are using implements.  …

1

Holistic approaches to performance analysis

About 6 weeks ago I prepared a talk on some of my experiences addressing performance problems in the context of Microsoft Edge.  I ended up not actually giving that talk but I thought it would make an interesting article so I’ve fleshed it out a little and turned it into this. The kind of problems…

2

"Linq to Memory": another old idea

One of my readers asked if I had any particular plans around memory density for Visual Studio to go with my last posting and indeed I had one thought that I considered a very powerful way to create data structures that were more likely to be scalable.  Like most of my ideas it’s a very simple…

10

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 good results…

7

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! …

2

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 my world.  There are lots of…

0

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 entry were…

2

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…

9

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?”…

0

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…

0