Awful Slowdowns

Questions about YourKit .NET Profiler
Tobbe
Posts: 72
Joined: Thu Feb 21, 2008 11:08 am

Post by Tobbe »

Just read from help pages
Connect to locally running profiled application

The profiler will show all detected locally running profiled applications on the Welcome screen:

A "locally running profiled application" is an application running and being profiled on the same computer where you are now using the profiler UI.
Guess that answers my question...
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

Please let me again describe the idea.

"Enable profiling" _does not_ mean "start profiling".

Instead this means only one: application with _enabled profiling_ is capable of being profiled. Such application just loads a profiler agent library which sleeps until you connect to it (if ever) from profiler.

This means that if you want you can monitor it, profile it etc. When you do so, there will be some overhead.

When you don't do CPU sampling or tracing, there is nothing special happening in the profiling enabled application.

So enabling profiling does not affect execution of profiling-enabled applications.

There is only one exception: enabling of CPU tracing. This special mode due to .NET framework profiling architecture implementation can add overhead even if no CPU profiling is being performed.

To solve this, there was special mode added: enable profiling without CPU tracing.

There is absolutely no drawbacks in enabling profiling in this mode in any application.


Please read more http://www.yourkit.com/docs/net30/help/ ... /index.jsp
http://www.yourkit.com/docs/net30/help/ ... erhead.jsp
If not, this is no good, we have alot of small .NET applikations that helps us in our daily work. I dont want to add/remove/add/remove/etc them from the exclusion list every time i want to profile a specific applikation.
You don't have to alter the list.

Instead, just do the following:
- set mode to "Enable without CPU tracing"

- if a need to profile with tracing arises, a) switch the level b) start that application c) switch the level back. This does not affect your multiple small applications.
Profiling every single .NET application on the system, trashing performance in the process, isn't acceptable.
Absolutely.

But enabling != profiling.

Used approach gives you much more freedom.

1. If you wish to profile certain application only, keep "Profiling disabled" setting. Switch it on only right before starting your application to profile. Then switch it off. All works similar to traditional scheme: you perform special actions to profile certain application.

2. Very often having an application running which eventually starts misbehaving, one thinks "I wished I could profile it". In traditional scheme, this means that: application should be restarted with a profiler. But often, re-starting it with a profiler, its very hard or even impossible to re-create problematic state.
YourKit approach allows to profile whenever a need arises. This is a huge benefit.
Tobbe
Posts: 72
Joined: Thu Feb 21, 2008 11:08 am

Post by Tobbe »

2. Very often having an application running which eventually starts misbehaving, one thinks "I wished I could profile it". In traditional scheme, this means that: application should be restarted with a profiler. But often, re-starting it with a profiler, its very hard or even impossible to re-create problematic state.
YourKit approach allows to profile whenever a need arises. This is a huge benefit.
Totaly agree, thats one of the features i like with yourkit. However, it seems that even if i close yourkit it is still profiling in backgound (slowdows). I tried the following:
1. Started Yourkit, enabled profile with tracing. No apps running.
2. Closed Yourkit
3. Started my .NET app and the slowdonw is there.

1. Started Yourkit disabled profile. No apps running.
2. Closed Yourkit
3. Started my .NET app no slowdown.
Anton Katilin
Posts: 6172
Joined: Wed Aug 11, 2004 8:37 am

Post by Anton Katilin »

You're absolutely right.

Currently, whether profiling is enabled does not depend on whether the profiler UI is running or not.

Because there are people who find this confusing, we will change it so that enabling will only be effective if the profiler UI is running.
Vladimir Kondratyev
Posts: 1624
Joined: Tue Aug 10, 2004 7:52 pm

Post by Vladimir Kondratyev »

Please try version 3.0.5 http://www.yourkit.com/dotnet/
It should solve this issue.

Best regards,
Vladimir Kondratyev
YourKit, LLC
http://www.yourkit.com
"Don't get lost in data, get information!"
Post Reply