Solved

objective cpu usage [for qa]

Posted on 2014-01-01
5
476 Views
Last Modified: 2014-01-01
hello

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] ?
0
Comment
Question by:pulke13
  • 3
  • 2
5 Comments
 
LVL 11

Expert Comment

by:Technodweeb
ID: 39749930
You might have a look at this tool.
http://technet.microsoft.com/en-us/sysinternals/bb896653

They have dozens of free and very nice tools for analysis of systems and networks.
0
 

Author Comment

by:pulke13
ID: 39750225
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.
0
 
LVL 11

Accepted Solution

by:
Technodweeb earned 500 total points
ID: 39750309
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?
0
 
LVL 11

Expert Comment

by:Technodweeb
ID: 39750314
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%"
CLASSID="CLSID:C4D2D8E0-D1DD-11CE-940F-008029004347">
	<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"/>
</OBJECT>

Open in new window

0
 

Author Comment

by:pulke13
ID: 39750335
thank you very much for your comprehensive answer.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Windows Server 2012 Core connecting APC UPS serial /USB 5 251
1 CPU vs 2CPU in Hyper-V 9 105
HP DL360 G6 smart array 5 48
need to clone a white copy of a linux device 2 75
Introduction I've been in the software industry for over 20 years. I've interviewed at lots of companies, from start ups in stealth mode to some of the biggest and most successful. I've also conducted lots of interviews, especially as I've become a…
Hyper-convergence systems have taken the IT world by storm and have quickly started to change our point of view of how the data center should and could be architected. In this article, I’ll explain the benefits of employing a hyper-converged system …
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, just open a new email message. In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now