May 2005 - Posts

Narrowing Down Performance Problems in Managed Code
25 May 05 06:10 PM | ricom | 16 Comments   
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 Read More...
Filed under: ,
How To Do A Good Performance Investigation
23 May 05 05:54 PM | ricom | 11 Comments   
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 Read More...
Performance Quiz #6 -- Conclusion, Studying the Space
20 May 05 01:43 PM | ricom | 5 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- Looking at the sixth cut
19 May 05 01:45 PM | ricom | 14 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- Optimizing the Managed Version
18 May 05 09:40 PM | ricom | 16 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- The fifth cut goes foul!
18 May 05 09:15 PM | ricom | 3 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- Analyzing the managed code
17 May 05 03:12 PM | ricom | 14 Comments   
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 Read More...
Performance Quiz #6 -- Looking at the fourth cut
16 May 05 01:42 PM | ricom | 10 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- Looking at the third cut
13 May 05 04:58 PM | ricom | 10 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- Looking at the second cut
12 May 05 03:54 PM | ricom | 5 Comments   
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 Read More...
Filed under: ,
Performance Quiz #6 -- Looking at the first cut
11 May 05 04:50 PM | ricom | 12 Comments   
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 Read More...
Filed under:
Performance Quiz #6 -- Chinese/English Dictionary reader
10 May 05 04:22 PM | ricom | 16 Comments   
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 Read More...
Filed under: ,

Search

This Blog

Syndication

Page view tracker