Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4975 Discussions

Counter monitor and event based sampling

jeffrey-gallagher
1,042 Views
Ok, I don't really understand why I would ever use counter monitor as part of my optimizing strategy. What does counter monitor do for me that plain old event based sampling can't do?
0 Kudos
11 Replies
grapedog
Beginner
1,042 Views
From what I understand, event based sampling is used to take a sampling of the program counter/execution point when a register overflows or underflows. counter monitor is more of a running sampling of a register. But, i've heard that counter monitor is not really that good in the latest rev of vtune.

maybe the vtune experts should answer, not me
0 Kudos
Gary_C_Intel1
Employee
1,042 Views
Counter Monitor is generally used to measure more Operating system type metrics such as memory usage and availability, page faults, file I/O rates, etc. Basically, anything that PerfMon (Task Manager) can measure. The added feature that VTune has is the ability to select a time slice of the overall performance run and drill down to an application's source code to determine what the application was doing during any time intervals when the measured metric had unusual values.

In terms of Counter Monitor not being that good, that idea probably relates to the sampling rate as compared to event based sampling. Counter Monitor's sampling interval is generally 100 milliseconds whereas normal event based sampling is 1 millisecond so event based sampling can produce finer granularity. But the data produced by Counter Monitor can still be very useful, and the sampling rate is configurable.
0 Kudos
Daniel_B_Intel2
Employee
1,042 Views
> Counter Monitor is generally used to measure more
> Operating system type metrics such as memory usage,,,

I often use CM for measuring process' virtual memory consumption. (the process object events are available on XP)

> The added feature that VTune has is the
> ability to select a time slice of the overall
> performance run and drill down to an application's
> source code ...

By drilling down inside the slices with virtual memory rising edge /picks I identify modules and functions that perform intensive memory allocations.
0 Kudos
Ali_S_Intel
Employee
1,042 Views
I was under the impression that VTune's method of monitoring OS counters had a lot less overhead than Perfmon. Is that correct? Why?
0 Kudos
bnshah
Beginner
1,042 Views
Actually they are about the same since both use the same APIs to access the PerfMon counters. The advantage of using VTune is that you can correlate the perfmon data with sampling data. This gives you the ability to look at where events are occurring or time is being spent for a certain time interval. VTune also has more display options than perfmon.
0 Kudos
Ali_S_Intel
Employee
1,042 Views
So, you are saying that monitoring performance counters using VTune or Perfmon should yield the same performance benchmark results? I was thinking Perfmon alongwith its overhead will yield lower scores because of continuous disk activity (of course the issue gets exaggerated with higher sample rates).
0 Kudos
bnshah
Beginner
1,042 Views
What do you mean by continuous disk activity? Do you mean as a result of storing the data. I am not sure exactly how perfmon stores its data after it collects it but if you collect a few counters at a time the disk activity from perfmon (or vtune) should be negligible. You are correct on both tools however the higher your sampling rate the more overhead you will incur
0 Kudos
Ali_S_Intel
Employee
1,042 Views
I was referring to the disk overhead for the Perfmon tool to dump the collected counters to a file. I think Perfmon dumps the counter info every one second (highest sample rate) which is why disk stays busy continuosly.

Does VTune does counter logging the same way? If so, then both would show the same overhead.
0 Kudos
Gary_C_Intel1
Employee
1,042 Views
Yes, VTune does write the counter monitor samples to disk, but not after every sample is taken. If you want to avoid the disk accesses you can display the data in real-time only, and disable the logging of the data. In the "Configure Counter Monitor" screen, select the Counters tab and at the bottom of the screen, unselect Loggin and select "Display in Runtime(RT)".
0 Kudos
intel3
Beginner
1,042 Views
By drilling down inside the slices with virtual memory rising edge /picks I identify modules and functions that perform intensive memory allocations.





Could you please explain, how do you identify the functions?
0 Kudos
David_A_Intel1
Employee
1,042 Views
By selecting a time range in the Counter Monitor display, you can basically filter the sampling data so that you look at only the samples collected during that time range (you must collect sampling and counter monitor data in the same activity in orderto use this feature).
Once in the sampling data, you can "drill-down" (successive double-clicks to increase granularity of the data) until you get to the Hotspots view, which shows functions. Drilling down on the function will take you to source annotated with the sampling data.
0 Kudos
Reply