Time (%) field in source code window

Code profiling for .NET Developers

Moderators: Luke Jefferson, StephenC, Alex.Davies, AndrewH, melvyn.harbour, Laura Morley

Time (%) field in source code window

Postby RichWildUK » Mon Jun 28, 2010 2:05 pm

Hi,

I wonder if anyone can clarify for me what the column "Time (%)" actually signifies in the source code window when looking at the results?

There's some informatin on this page: http://www.red-gate.com/supportcenter/C ... 789215.htm

...which says something like "...line-level timings are shown for each line of code (as well as average time and hit count).", but I'm not sure what the means preceisly.

What are the line level percentages actually a percentage of? I would have thought it would be either:
- percentage of time spent on that line compared to total time spent in the entire program (selected part only, of course); or
- percentage of time spent on that line compared to the total time spent in that function.

Only, if you add the percentages in that column up for the particular function I've selected, it comes to well over 100%, which confuses me.

The other thought I had was that this is a multi-threaded application and I'm running it on a dual-core system - could this mean my total percentages for the entire program should add up to 200%, not 100%, and explain the above? (I have been running it based on processor timings rather than clock timings, because I'm running it on my own pc and multitasking with other stuff.) Help!

Many thanks :)

(P.S. I'm using verion 5.2 which I bought last month on a 'no updates' basis, but I couldn't see the version 5 forum!)
RichWildUK
 
Posts: 3
Joined: Mon Jun 28, 2010 1:51 pm

Postby slaphead99 » Mon Jun 28, 2010 7:22 pm

Yes- the percentage values are always with respect to *all* the data that has been selected (default- all of the data).

You get 100% per core.

Does that help you to see the consistency in the results you are getting?
slaphead99
 
Posts: 92
Joined: Wed Mar 10, 2010 2:27 pm

Postby RichWildUK » Tue Jun 29, 2010 8:26 am

Thanks - that clarifies things. So presumably on my dual core system the sum of the percentages is then 200%. This should help me interpret the results properly - cheers.
RichWildUK
 
Posts: 3
Joined: Mon Jun 28, 2010 1:51 pm

Postby slaphead99 » Thu Jul 01, 2010 12:59 pm

That's right: 2 cores -> 200%

Happy profiling :)
slaphead99
 
Posts: 92
Joined: Wed Mar 10, 2010 2:27 pm

Postby kay.one » Sat Jul 03, 2010 6:49 am

Then how can this code show 100% time spent on a quad core cpu,

Code: Select all
           
string text;
while (true)
{
    var text = "Text" + DateTime.Now;
}


Just to make sure that the 100% doesn't mean that its 100 of a core since its running on a single thread, I put this together,


Code: Select all
   class Program
    {
        static void Main(string[] args)
        {
            new Thread(Do1).Start();
            new Thread(Do2).Start();
            new Thread(Do3).Start();
            new Thread(Do4).Start();

            Console.ReadLine();
        }

        private static void Do1()
        {
            while (true)
            {
                var text = "Text" + DateTime.Now;
            }
        }

        private static void Do2()
        {
            while (true)
            {
                var text = "Text" + DateTime.Now;
            }
        }

        private static void Do3()
        {
            while (true)
            {
                var text = "Text" + DateTime.Now;
            }
        }

        private static void Do4()
        {
            while (true)
            {
                var text = "Text" + DateTime.Now;
            }
        }
    }



which ran on all cores without profiler attached, but when I attached a profiler it started using a single core and each loop showed 24% cpu time,

I am completely lost on what these numbers actually mean, and why does it start running on a single core when profiler is attached!!!
kay.one
 
Posts: 2
Joined: Sat Jul 03, 2010 6:43 am

Postby RichWildUK » Mon Jul 05, 2010 9:10 am

Hi kay.one,

I wonder, when you first created the profile, what did you select under "default timing display": "CPU" or "Wall Clock"?

I think if you select "Wall Clock" you'll get results out of 100% no matter how many cpus you're using, and I believe it defaults to Wall Clock unless you change it.

rich.
RichWildUK
 
Posts: 3
Joined: Mon Jun 28, 2010 1:51 pm

Re:

Postby kay.one » Mon Jul 05, 2010 5:08 pm

RichWildUK wrote:Hi kay.one,

I wonder, when you first created the profile, what did you select under "default timing display": "CPU" or "Wall Clock"?

I think if you select "Wall Clock" you'll get results out of 100% no matter how many cpus you're using, and I believe it defaults to Wall Clock unless you change it.

rich.



Actually I tried to change it to wall-clock, and the numbers changed like this:

Loops: 4*17%
Console.ReadLine(): 17%
kay.one
 
Posts: 2
Joined: Sat Jul 03, 2010 6:43 am


Return to ANTS Performance Profiler 6

Who is online

Users browsing this forum: No registered users and 0 guests