Welcome to MSDN Blogs Sign in | Join | Help

May 2005 - Posts

Narrowing Down Performance Problems in Managed Code

My last entry was some generic advice about how to do a good performance investigation. I think actually it's too generic to be really useful -- in fact I think it fails my Peanut Butter Sandwich Test. Digression to discuss the Peanut Butter Sandwich
Posted by ricom | 16 Comments
Filed under: ,

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

Performance Quiz #6 -- Conclusion, Studying the Space

I thought I would end this series by looking at the space costs of both solutions because it gives a real window into what I do every day and perhaps it's helpful to understand the multidimensional aspects of performance analysis. It's also interesting
Posted by ricom | 5 Comments
Filed under: ,

Performance Quiz #6 -- Looking at the sixth cut

Well, it's time for me to surrender. Sort of :) Raymond pulls out all the stops in his sixth version by painting a big bullseye on his biggest remaining source of slowness which is operator new. He turns in an excellent result here. On my benchmark machine
Posted by ricom | 14 Comments
Filed under: ,

Performance Quiz #6 -- Optimizing the Managed Version

Well, I've been slacking off too long... sitting on my nice 124ms time and doing nothing. It's time I did something to the managed code. You'll recall I had some observations in my analysis of the managed code and basically I can summarize my thoughts
Posted by ricom | 16 Comments
Filed under: ,

Performance Quiz #6 -- The fifth cut goes foul!

Well today Raymond hits a snag in version 5 of the program. I started by profiling the code as provided (in fact I had the .exe from Raymond himself so I didn't even have to build it). The new version is actually slower (start to finish) than the previous
Posted by ricom | 3 Comments
Filed under: ,

Performance Quiz #6 -- Analyzing the managed code

Raymond didn't post an update today so I think this is a good time for me to post the first analysis of the managed code. There's some things to notice right away and I've highlighted them in the table below. This table was generated in the same way as
Posted by ricom | 14 Comments

Performance Quiz #6 -- Looking at the fourth cut

Raymond is definately making some great headway. Having targetted the single-character at a time conversion problem in version 4 of his program he's 1.84 times faster than the previous version. Version Execution Time (seconds) Unmanaged v1 1.328 Unmanaged
Posted by ricom | 10 Comments
Filed under: ,

Performance Quiz #6 -- Looking at the third cut

The fun continues as today we look at Raymond's third improvement . Raymond starts using some pretty hefty Win32 magic with a mapped file view to eliminate once-and-for-all any costs associated with the getline function. And good news, his new version
Posted by ricom | 10 Comments
Filed under: ,

Performance Quiz #6 -- Looking at the second cut

Stefang jumped into the fray with his analysis in the comments from my last posting . Thank you Stefang. And it seems, as usual, things aren't always what they appear :) Let's continue the story without me giving away the ending just yet though. How is
Posted by ricom | 5 Comments
Filed under: ,

Performance Quiz #6 -- Looking at the first cut

Yesterday Raymond posted his initial version and I posted Performance Quiz #6 . Today he posts the first optimization . Quoting him: Upon profiling our dictionary-loader, I discovered that 80% of the CPU time was spent in getline . Clearly this is where
Posted by ricom | 12 Comments
Filed under:

Performance Quiz #6 -- Chinese/English Dictionary reader

Raymond Chen is running a series of articles about how to build and optimize the startup time of a Chinese/English dictionary. Developing a Chinese/English dictionary: Introduction Loading the dictionary, part 1: Starting point and then my analysis Loading
Posted by ricom | 16 Comments
Filed under: ,
 
Page view tracker