Performance Signatures: A Qualitative Approach to Dependency Guidance

I’ve been working on an idea here in my “spare” time for quite some time now — basically in response to the fact that there is so much .NET Framework to cover and so little in the way of pervasive performance information about it.  Time and again I’m approached by people who would like there to be some set of rules they could follow for usage — which APIs are good to use in which contexts.  And maybe some way of getting warnings and advice at design time and when troubleshooting.

I came up with the idea of using “Performance Signatures” to describe, very roughly, the performance characteristics of any given API.  I submitted the idea plus some very preliminary results to The Computer Measurement Group — CMG — I didn’t say anything about it here because the refereeing process was to be blind on both ends.

ABSTRACT: This paper describes a simple qualitative approach, through approximate Performance Signatures, that allows prescriptive dependency guidance to be given in real time and facilitates improved analysis of measured results. Emphasis is placed on ease of adoption and preventing common/large mistakes

On Monday I heard back from CMG with these details: 

Dear Rico:

Congratulations! It is my pleasure to notify you that your paper “Performance Signatures:  A Qualitative Approach to Dependency Guidance” has been accepted for the CMG2006 conference to be held December 3 – 8, 2006, in Reno, Nevada. The Program Committee has scheduled your paper for the following session… 

Author/Firm:        Rico Mariani / Microsoft Corporation
Session Number:     626
Subject Area:       Fundamentals/Core Competency            
Day, Time:          Friday  [Dec 8] 10:30 AM – 12:00 PM
Session Length:     60 minutes

Which means I’m heading down there to give a talk on the subject and hopefully meet some interesting people that are also in the performance business.

If you’re interested, see for more details.  Maybe I’ll see you there!

In the interest of not massively pre-releasing the contents of the paper I’ll shush about it until after the conference.

Comments (4)

  1. Hmm, this sounds very very interesting.  Can’t wait to hear more 🙂

  2. Alois Kraus says:

    Hi Rico,

    it is interesting that I had similar problems while writing some perf stuff at CodeProject

    I did find it useful to use a coloring schema for the t-axis. My charts have a color gradient which visualize how costly the operation in absolute time is if you call it e.g. 5 million times. You could play with multi color gradients on a logarithmic scale where for each order of magnitude the gradient changes from one color to another. This should give one a very nice visual feedback how costly an operation is. It would be great to add this one to intellisense ;-). A performance attribute with which each function is annotaed that does contain the time required to call this function e.g. 5 million time on a standard PC could be  used to give you a direct visual feedback how slow the operation is you intend to use while programming.


     Alois Kraus

  3. GregYoung says:

    Looking forward to it.