Archive for December, 2007

The dot.net Profiler with Data Trace feature

As a software performance company and the owner of a dot.net profiler, we receive a lot of enquiries to provide data-related consultancy. I’ll let you in on a secret: Before we visit our clients on site, we first invite people to use SpeedTrace. As a result we are able to develop long-standing business relationships.

Reading this article, perhaps you might think … what’s he talking about? For this reason I would like to show you, with a simple example, how SpeedTrace dot.net profiler uses its unique data tracing capabilities to get down to the root of a problem.

I have a very nice dot.net application from Microsoft called MS Expression Design; it will help me to illustrate the SpeedTrace dot.net profiler trace capabilities. Just a few days ago I installed a program which, as if by some spell, knocked out the MS application. Don’t ask me how, but it tampered it, and yesterday when I tried to use Expression Design, I received the error message below:

The dot.net application error

The dot.net application error

What this message essentially says is: Oops! Error, sorry, bye! — Not much description, is it ??

You might think: In order to solve the problem he could have installed the application again. Yes, that may be a fair solution, but don’t forget, this is just a sample, and in the real world things are more involved, and there is also a lot more at stake. Anyway, I wanted to see what actually happened to my application, so I used our dot.net profiler to find the answers.

First I created a new Generic Project (Ctrl + G) keeping the default settings and selecting the External Program.

The dot.net profiler

The dot.net profiler


Then in order to get more information, I needed to activate Data Trace.

dot.net Data Trace

dot.net Data Trace

Finally, clicking the Activate Project button, I started to record the loading of Expression Design.

Activate dot.net project

Activate dot.net project

After receiving the same error message as the one interpreted above (Oops! Error, sorry, bye!), I took a snapshot by pressing the Stop Recording button, and SpeedTrace dot.net profiler created my trace output.

dot.net Trace Output

dot.net Trace Output

Now, I was able to run a search for the cause of this faulty behavior. I opened the trace output in Trace and Profile Data mode to search for a string description.

dot.net profiling and tracing

dot.net profiling and tracing

The Trace Analyzer appeared, and I clicked the Trace tab immediately.

dot.net trace tab

dot.net trace tab

By selecting the Find All Exceptions option, I could quickly see the string error.

find exceptions option

find exceptions option

dot.net profiler result

dot.net profiler result

Therefore, I was able to conclude that the Microsoft.Expression.Design.UserInterface.dll was affected. In this case, all I had to do was: just copy the Dll again, so I saved myself the time I would have needed to wait for the installation process and then repair it. However, in a complex multi-thread system, solutions are usually not that simple — all the more reason to use a powerful tool like SpeedTrace dot.net profiler to find the root cause of any performance problem or faulty behavior. And I don’t think I’m exaggerating in telling you that this tool happens to be the best and fastest software profiling and tracing tool on the market. See for yourself! Download our free SpeedTrace trial version!

SpeedTrace dot.net profiler ready for OOP

After preparing my presentation and having many déjà vus, our SpeedTrace dot.net profiler is ready to show its capabilities and features again. If you are planning a trip to Germany in January, why don’t you pay us a visit and meet us at the booth. I would be glad to talk to you!

You can find more information about our presentaion "Efficient analysis of dot.NET applications with SpeedTrace" here at OOP – Software meets Business.

Everything is iterative!

Have you ever been in a situation or place where the first thing that flashes your mind is "It’s a déjà vu?" According to definition, déjà vu is an internal sense of a person who suddenly feels that he/she has already experienced the present noteworthy situation at some point in the past.

What about having déjà vus when developing and profiling your dot.net applications? I have been looking for information these days for the next conference titled "OOP Software meets Business", taking place in Germany and dealing with the performance of dot.net applications in relation to dot.net profilers. Recently, I came across the article “Tuning .NET Application Performance” from the msdn, and all of a sudden realized that, although written in May 2004, it demonstrated to me that many things have not changed much since then.

What caught my attention was the section "Performance Tuning Process" which states almost exactly what I wanted to say at the conference, of course, with different words.

If you want to eliminate bottlenecks in your dot.net applications you need to be iterative. However, being iterative is a time-consuming task that not all of us can afford due to the usual set cumpolsory project milestones (deadlines).

If you take a close look to the activities in Section 2 and 3 of the article, that’s where I always say our SpeedTrace dot.net profiler can be used with best results. First, look at "Collect Data"; it is said that we need to simulate load and capture metrics — excellent — our dot.net profiler will record your information to help you later with the activity in Section 3, "Analyse Results". That is where you identify performance issues and bottlenecks. How? — By using our dot.net profiler, of course.

However, we have not yet finished at this point, since the rest of the activities, "Configure", and "Test and Measure", need to undergo tuning in order to re-iterate the whole cycle.

So you can see that our SpeedTrace dot.net profiler will accompany you systematically during your whole dot.net development process.

The next time you start a new dot.net project, don’t forget to purchase your SpeedTrace toolkit so you can streamline your development and application with the right guidelines by using a really good dot.net profiler right from the outset. You won’t regret it!