Go Premium for a chance to win a PS4. Enter to Win

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 505
  • Last Modified:

objective cpu usage [for qa]


I need to measure cpu usage of a process for performance qa.
I would like to get an indication that would be relevant in different machines with different resources and numbers of cpu's. The value of % cpu is not good enough , because testing in a different environment [with more cpu's] will give a different value.
Is there some way [maybe a program] to get number of cpu threads or something of the sort [similar to amount of memory usage value] ?
  • 3
  • 2
1 Solution
Gregory MillerGeneral ManagerCommented:
You might have a look at this tool.

They have dozens of free and very nice tools for analysis of systems and networks.
pulke13Author Commented:
thank you for the response.
This doesn't address my question. I know about this tool.
The problem is that it shows the percent of the cpu that a process is using.
So if for example I run that process in a machine with 4 cpu's - the percentage won't be the same as in a machine with 1 cpu.
I want to know if there is a way to get objective data. Like that number of memory bytes used by a process. The number of [cpu threads?] x of the cpu [not percentage].
thank you.
Gregory MillerGeneral ManagerCommented:
I do not mean to seem argumentative but wanted to kick this around a bit. You have an application that you are wanting to measure on differing types of systems with different processors, single core vs. multicore. I get that. Unless your application is written expressly to exploit multiple cores or processors in parallel, your results for utilization whether it be a single core and a dual quad core, assuming the core frequency is the same, will net you fairly close to the same performance. Taking all other possible influences out of the picture like cache onboard the CPU, I/O bottlenecks that force the cpu to wait, system RAM, etc. All things equal, and the CPUs are from the same family, I think you would realize a result that was the same or very, very close to the same.

As for looking at the percentages, yes the aggregate is usually such that if it takes 80% of the CPU on one core of a quad code, the aggregate will show 20%. In comparison, on a single core cpu with all factors the same, the same process will consume the same 80%.

On the Process Explorer, you can drill down for each process and see all of the threads a process is using as well as the CPU cycle count as well.

Another tool they have on the site is PsList which give a live snapshot of process consumption, including Priority, Thread Count Handle Count, Private Virtual Memory, CPU Time (not percentage but actual CPU usage time logged, and much more...

Another option may be to setup a Performance Monitor from within Windows itself. You can define Data Collector Sets which will log quite a bit of detail about the process you are running and it produces some nice reports too. The nice thing is you can save these configurations and move them to any machine and you are ready to go without fear you might forget to add something or the wrong thing and you have to do it again.

These are just some ideas, nothing more... Can any of this help you get to where you need to be for data collection?
Gregory MillerGeneral ManagerCommented:
Here is a test I ran for 1 minute on my workstation using Windows Performance Monitor as an example of the types of output you can get from it... I hope it does not show too many secrets about my computer... lol

I picked on process that was currently running and would register some numbers instead of just sleeping. The process was CarboniteService and it ran for roughly one minute measuring all of the topics under the Process category. There are hundreds of categories so look it over as an option.
<OBJECT ID="DISystemMonitor1" WIDTH="100%" HEIGHT="100%"
	<PARAM NAME="_Version" VALUE="458755"/>
	<PARAM NAME="_ExtentX" VALUE="20876"/>
	<PARAM NAME="_ExtentY" VALUE="15822"/>
	<PARAM NAME="DisplayType" VALUE="3"/>
	<PARAM NAME="ReportValueType" VALUE="0"/>
	<PARAM NAME="MaximumScale" VALUE="100"/>
	<PARAM NAME="MinimumScale" VALUE="0"/>
	<PARAM NAME="ShowLegend" VALUE="1"/>
	<PARAM NAME="ShowToolbar" VALUE="1"/>
	<PARAM NAME="ShowScaleLabels" VALUE="1"/>
	<PARAM NAME="ShowHorizontalGrid" VALUE="0"/>
	<PARAM NAME="ShowVerticalGrid" VALUE="0"/>
	<PARAM NAME="ShowValueBar" VALUE="1"/>
	<PARAM NAME="ManualUpdate" VALUE="1"/>
	<PARAM NAME="Highlight" VALUE="0"/>
	<PARAM NAME="ReadOnly" VALUE="0"/>
	<PARAM NAME="MonitorDuplicateInstances" VALUE="1"/>
	<PARAM NAME="UpdateInterval" VALUE="1"/>
	<PARAM NAME="DisplayFilter" VALUE="1"/>
	<PARAM NAME="BackColorCtl" VALUE="-2147483633"/>
	<PARAM NAME="ForeColor" VALUE="-1"/>
	<PARAM NAME="BackColor" VALUE="-1"/>
	<PARAM NAME="GridColor" VALUE="8421504"/>
	<PARAM NAME="TimeBarColor" VALUE="255"/>
	<PARAM NAME="BorderStyle" VALUE="0"/>
	<PARAM NAME="TimeAxisLabels" VALUE="1"/>
	<PARAM NAME="Tooltip" VALUE="1"/>
	<PARAM NAME="NextCounterColor" VALUE="12"/>
	<PARAM NAME="NextCounterWidth" VALUE="0"/>
	<PARAM NAME="NextCounterLineStyle" VALUE="1"/>
	<PARAM NAME="MaximumSamples" VALUE="6"/>
	<PARAM NAME="GraphTitle" VALUE=""/>
	<PARAM NAME="YAxisLabel" VALUE=""/>
	<PARAM NAME="DigitGrouping" VALUE="1"/>
	<PARAM NAME="WrapTimeLine" VALUE="1"/>
	<PARAM NAME="DataSourceType" VALUE="2"/>
	<PARAM NAME="LogViewStart" VALUE="1/1/2014 4:32:43 PM"/>
	<PARAM NAME="LogViewStop" VALUE="1/1/2014 4:33:58 PM"/>
	<PARAM NAME="SqlDsnName" VALUE=""/>
	<PARAM NAME="SqlLogSetName" VALUE=""/>
	<PARAM NAME="LogFileName001" VALUE="U:\Users\GeekPatrol\Desktop\EE-Test\GEEK001_20140101-000001\DataCollector01.blg"/>
	<PARAM NAME="LogFileCount" VALUE="1"/>
	<PARAM NAME="AmbientFont" VALUE="1"/>
	<PARAM NAME="LegendColumnWidths" VALUE="	7.97385620915033E-02	7.97385620915033E-02	0.2	9.93464052287582E-02	9.93464052287582E-02	0.2	0.16078431372549"/>
	<PARAM NAME="LegendSortDirection" VALUE="-2"/>
	<PARAM NAME="LegendSortColumn" VALUE="0"/>
	<PARAM NAME="CounterCount" VALUE="28"/>
	<PARAM NAME="MaximumSamples" VALUE="6"/>
	<PARAM NAME="SampleCount" VALUE="0"/>
	<PARAM NAME="TimeStamps" VALUE="130330675630000000	130330675780000000	130330675930000000	130330676080000000	130330676230000000	130330676390000000"/>
	<PARAM NAME="Counter00001.Path" VALUE="\\GEEK001\Process(_Total)\% Privileged Time"/>
	<PARAM NAME="Counter00001.Color" VALUE="8388736"/>
	<PARAM NAME="Counter00001.Width" VALUE="1"/>
	<PARAM NAME="Counter00001.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00001.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00001.Show" VALUE="1"/>
	<PARAM NAME="Counter00001.Selected" VALUE="0"/>
	<PARAM NAME="Counter00002.Path" VALUE="\\GEEK001\Process(_Total)\% Processor Time"/>
	<PARAM NAME="Counter00002.Color" VALUE="755384"/>
	<PARAM NAME="Counter00002.Width" VALUE="1"/>
	<PARAM NAME="Counter00002.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00002.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00002.Show" VALUE="1"/>
	<PARAM NAME="Counter00002.Selected" VALUE="0"/>
	<PARAM NAME="Counter00003.Path" VALUE="\\GEEK001\Process(_Total)\% User Time"/>
	<PARAM NAME="Counter00003.Color" VALUE="16711935"/>
	<PARAM NAME="Counter00003.Width" VALUE="1"/>
	<PARAM NAME="Counter00003.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00003.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00003.Show" VALUE="1"/>
	<PARAM NAME="Counter00003.Selected" VALUE="0"/>
	<PARAM NAME="Counter00004.Path" VALUE="\\GEEK001\Process(_Total)\Creating Process ID"/>
	<PARAM NAME="Counter00004.Color" VALUE="32896"/>
	<PARAM NAME="Counter00004.Width" VALUE="1"/>
	<PARAM NAME="Counter00004.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00004.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00004.Show" VALUE="1"/>
	<PARAM NAME="Counter00004.Selected" VALUE="0"/>
	<PARAM NAME="Counter00005.Path" VALUE="\\GEEK001\Process(_Total)\Elapsed Time"/>
	<PARAM NAME="Counter00005.Color" VALUE="32768"/>
	<PARAM NAME="Counter00005.Width" VALUE="1"/>
	<PARAM NAME="Counter00005.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00005.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00005.Show" VALUE="1"/>
	<PARAM NAME="Counter00005.Selected" VALUE="0"/>
	<PARAM NAME="Counter00006.Path" VALUE="\\GEEK001\Process(_Total)\Handle Count"/>
	<PARAM NAME="Counter00006.Color" VALUE="11788021"/>
	<PARAM NAME="Counter00006.Width" VALUE="1"/>
	<PARAM NAME="Counter00006.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00006.ScaleFactor" VALUE="-3"/>
	<PARAM NAME="Counter00006.Show" VALUE="1"/>
	<PARAM NAME="Counter00006.Selected" VALUE="0"/>
	<PARAM NAME="Counter00007.Path" VALUE="\\GEEK001\Process(_Total)\ID Process"/>
	<PARAM NAME="Counter00007.Color" VALUE="65535"/>
	<PARAM NAME="Counter00007.Width" VALUE="1"/>
	<PARAM NAME="Counter00007.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00007.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00007.Show" VALUE="1"/>
	<PARAM NAME="Counter00007.Selected" VALUE="0"/>
	<PARAM NAME="Counter00008.Path" VALUE="\\GEEK001\Process(_Total)\IO Data Bytes/sec"/>
	<PARAM NAME="Counter00008.Color" VALUE="55295"/>
	<PARAM NAME="Counter00008.Width" VALUE="1"/>
	<PARAM NAME="Counter00008.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00008.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00008.Show" VALUE="1"/>
	<PARAM NAME="Counter00008.Selected" VALUE="0"/>
	<PARAM NAME="Counter00009.Path" VALUE="\\GEEK001\Process(_Total)\IO Data Operations/sec"/>
	<PARAM NAME="Counter00009.Color" VALUE="16760576"/>
	<PARAM NAME="Counter00009.Width" VALUE="1"/>
	<PARAM NAME="Counter00009.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00009.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00009.Show" VALUE="1"/>
	<PARAM NAME="Counter00009.Selected" VALUE="0"/>
	<PARAM NAME="Counter00010.Path" VALUE="\\GEEK001\Process(_Total)\IO Other Bytes/sec"/>
	<PARAM NAME="Counter00010.Color" VALUE="16776960"/>
	<PARAM NAME="Counter00010.Width" VALUE="1"/>
	<PARAM NAME="Counter00010.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00010.ScaleFactor" VALUE="-5"/>
	<PARAM NAME="Counter00010.Show" VALUE="1"/>
	<PARAM NAME="Counter00010.Selected" VALUE="0"/>
	<PARAM NAME="Counter00011.Path" VALUE="\\GEEK001\Process(_Total)\IO Other Operations/sec"/>
	<PARAM NAME="Counter00011.Color" VALUE="10907866"/>
	<PARAM NAME="Counter00011.Width" VALUE="1"/>
	<PARAM NAME="Counter00011.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00011.ScaleFactor" VALUE="-2"/>
	<PARAM NAME="Counter00011.Show" VALUE="1"/>
	<PARAM NAME="Counter00011.Selected" VALUE="0"/>
	<PARAM NAME="Counter00012.Path" VALUE="\\GEEK001\Process(_Total)\IO Read Bytes/sec"/>
	<PARAM NAME="Counter00012.Color" VALUE="16776960"/>
	<PARAM NAME="Counter00012.Width" VALUE="1"/>
	<PARAM NAME="Counter00012.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00012.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00012.Show" VALUE="1"/>
	<PARAM NAME="Counter00012.Selected" VALUE="0"/>
	<PARAM NAME="Counter00013.Path" VALUE="\\GEEK001\Process(_Total)\IO Read Operations/sec"/>
	<PARAM NAME="Counter00013.Color" VALUE="65280"/>
	<PARAM NAME="Counter00013.Width" VALUE="1"/>
	<PARAM NAME="Counter00013.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00013.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00013.Show" VALUE="1"/>
	<PARAM NAME="Counter00013.Selected" VALUE="0"/>
	<PARAM NAME="Counter00014.Path" VALUE="\\GEEK001\Process(_Total)\IO Write Bytes/sec"/>
	<PARAM NAME="Counter00014.Color" VALUE="11788021"/>
	<PARAM NAME="Counter00014.Width" VALUE="1"/>
	<PARAM NAME="Counter00014.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00014.ScaleFactor" VALUE="-4"/>
	<PARAM NAME="Counter00014.Show" VALUE="1"/>
	<PARAM NAME="Counter00014.Selected" VALUE="0"/>
	<PARAM NAME="Counter00015.Path" VALUE="\\GEEK001\Process(_Total)\IO Write Operations/sec"/>
	<PARAM NAME="Counter00015.Color" VALUE="10907866"/>
	<PARAM NAME="Counter00015.Width" VALUE="1"/>
	<PARAM NAME="Counter00015.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00015.ScaleFactor" VALUE="-1"/>
	<PARAM NAME="Counter00015.Show" VALUE="1"/>
	<PARAM NAME="Counter00015.Selected" VALUE="0"/>
	<PARAM NAME="Counter00016.Path" VALUE="\\GEEK001\Process(_Total)\Page Faults/sec"/>
	<PARAM NAME="Counter00016.Color" VALUE="16711680"/>
	<PARAM NAME="Counter00016.Width" VALUE="1"/>
	<PARAM NAME="Counter00016.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00016.ScaleFactor" VALUE="-2"/>
	<PARAM NAME="Counter00016.Show" VALUE="1"/>
	<PARAM NAME="Counter00016.Selected" VALUE="0"/>
	<PARAM NAME="Counter00017.Path" VALUE="\\GEEK001\Process(_Total)\Page File Bytes"/>
	<PARAM NAME="Counter00017.Color" VALUE="16760576"/>
	<PARAM NAME="Counter00017.Width" VALUE="1"/>
	<PARAM NAME="Counter00017.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00017.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00017.Show" VALUE="1"/>
	<PARAM NAME="Counter00017.Selected" VALUE="0"/>
	<PARAM NAME="Counter00018.Path" VALUE="\\GEEK001\Process(_Total)\Page File Bytes Peak"/>
	<PARAM NAME="Counter00018.Color" VALUE="55295"/>
	<PARAM NAME="Counter00018.Width" VALUE="1"/>
	<PARAM NAME="Counter00018.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00018.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00018.Show" VALUE="1"/>
	<PARAM NAME="Counter00018.Selected" VALUE="0"/>
	<PARAM NAME="Counter00019.Path" VALUE="\\GEEK001\Process(_Total)\Pool Nonpaged Bytes"/>
	<PARAM NAME="Counter00019.Color" VALUE="255"/>
	<PARAM NAME="Counter00019.Width" VALUE="1"/>
	<PARAM NAME="Counter00019.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00019.ScaleFactor" VALUE="-5"/>
	<PARAM NAME="Counter00019.Show" VALUE="1"/>
	<PARAM NAME="Counter00019.Selected" VALUE="0"/>
	<PARAM NAME="Counter00020.Path" VALUE="\\GEEK001\Process(_Total)\Pool Paged Bytes"/>
	<PARAM NAME="Counter00020.Color" VALUE="255"/>
	<PARAM NAME="Counter00020.Width" VALUE="1"/>
	<PARAM NAME="Counter00020.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00020.ScaleFactor" VALUE="-6"/>
	<PARAM NAME="Counter00020.Show" VALUE="1"/>
	<PARAM NAME="Counter00020.Selected" VALUE="0"/>
	<PARAM NAME="Counter00021.Path" VALUE="\\GEEK001\Process(_Total)\Priority Base"/>
	<PARAM NAME="Counter00021.Color" VALUE="8388608"/>
	<PARAM NAME="Counter00021.Width" VALUE="1"/>
	<PARAM NAME="Counter00021.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00021.ScaleFactor" VALUE="0"/>
	<PARAM NAME="Counter00021.Show" VALUE="1"/>
	<PARAM NAME="Counter00021.Selected" VALUE="0"/>
	<PARAM NAME="Counter00022.Path" VALUE="\\GEEK001\Process(_Total)\Private Bytes"/>
	<PARAM NAME="Counter00022.Color" VALUE="8388608"/>
	<PARAM NAME="Counter00022.Width" VALUE="1"/>
	<PARAM NAME="Counter00022.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00022.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00022.Show" VALUE="1"/>
	<PARAM NAME="Counter00022.Selected" VALUE="0"/>
	<PARAM NAME="Counter00023.Path" VALUE="\\GEEK001\Process(_Total)\Thread Count"/>
	<PARAM NAME="Counter00023.Color" VALUE="16711935"/>
	<PARAM NAME="Counter00023.Width" VALUE="1"/>
	<PARAM NAME="Counter00023.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00023.ScaleFactor" VALUE="-2"/>
	<PARAM NAME="Counter00023.Show" VALUE="1"/>
	<PARAM NAME="Counter00023.Selected" VALUE="0"/>
	<PARAM NAME="Counter00024.Path" VALUE="\\GEEK001\Process(_Total)\Virtual Bytes"/>
	<PARAM NAME="Counter00024.Color" VALUE="11193702"/>
	<PARAM NAME="Counter00024.Width" VALUE="1"/>
	<PARAM NAME="Counter00024.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00024.ScaleFactor" VALUE="-9"/>
	<PARAM NAME="Counter00024.Show" VALUE="1"/>
	<PARAM NAME="Counter00024.Selected" VALUE="0"/>
	<PARAM NAME="Counter00025.Path" VALUE="\\GEEK001\Process(_Total)\Virtual Bytes Peak"/>
	<PARAM NAME="Counter00025.Color" VALUE="8388736"/>
	<PARAM NAME="Counter00025.Width" VALUE="1"/>
	<PARAM NAME="Counter00025.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00025.ScaleFactor" VALUE="-9"/>
	<PARAM NAME="Counter00025.Show" VALUE="1"/>
	<PARAM NAME="Counter00025.Selected" VALUE="0"/>
	<PARAM NAME="Counter00026.Path" VALUE="\\GEEK001\Process(_Total)\Working Set"/>
	<PARAM NAME="Counter00026.Color" VALUE="65280"/>
	<PARAM NAME="Counter00026.Width" VALUE="1"/>
	<PARAM NAME="Counter00026.LineStyle" VALUE="1"/>
	<PARAM NAME="Counter00026.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00026.Show" VALUE="1"/>
	<PARAM NAME="Counter00026.Selected" VALUE="0"/>
	<PARAM NAME="Counter00027.Path" VALUE="\\GEEK001\Process(_Total)\Working Set - Private"/>
	<PARAM NAME="Counter00027.Color" VALUE="16711680"/>
	<PARAM NAME="Counter00027.Width" VALUE="1"/>
	<PARAM NAME="Counter00027.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00027.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00027.Show" VALUE="1"/>
	<PARAM NAME="Counter00027.Selected" VALUE="0"/>
	<PARAM NAME="Counter00028.Path" VALUE="\\GEEK001\Process(_Total)\Working Set Peak"/>
	<PARAM NAME="Counter00028.Color" VALUE="65535"/>
	<PARAM NAME="Counter00028.Width" VALUE="1"/>
	<PARAM NAME="Counter00028.LineStyle" VALUE="0"/>
	<PARAM NAME="Counter00028.ScaleFactor" VALUE="-8"/>
	<PARAM NAME="Counter00028.Show" VALUE="1"/>
	<PARAM NAME="Counter00028.Selected" VALUE="0"/>
	<PARAM NAME="Selected: %s" VALUE="\\GEEK001\Process(_Total)\Pool Paged Bytes"/>

Open in new window

pulke13Author Commented:
thank you very much for your comprehensive answer.

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now