<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Tutorial 13 - Leveraging Tasks make sense of Parallel/Asynchronous programs </title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Series/PerfView-Tutorial/Tutorial-13-Leveraging-Tasks-make-sense-of-ParallelAsynchronous-programs/RSS"></atom:link>
	<image>
		<url>http://media.ch9.ms/ch9/f2f2/ec782c13-00d6-4c9b-aba3-927e2b16f2f2/13ThreadTimeByTask_220.jpg</url>
		<title>Channel 9 - Tutorial 13 - Leveraging Tasks make sense of Parallel/Asynchronous programs </title>
		<link></link>
	</image>
	<description>This is the second of a set of video tutorials on how to do wall clock time investigations with PerfView.&amp;nbsp;&amp;nbsp;&amp;nbsp;It is best to watch the video using one of the high quality links on the right so the text is readable.&amp;nbsp; If you have not already watched the video on wall clock time basics, you should do that first (as well as the even more fundamental videos it will refer you to).&amp;nbsp;  In the first video the demo was the simplest case, a sequential program with both disk and CPU time.&amp;nbsp; In this video we discuss the more complex case when there are several threads doing concurrent activity that you wish to analyze.&amp;nbsp;&amp;nbsp; The key PerfView feature that helps in cases like these is the &#39;Thread Time (with Tasks)&#39;, but only works if you use the System.Diagnostics.Threading.Tasks.Task class to spawn the concurrent activities.&amp;nbsp; In this view if one Task spawns another, the time associated with the subtask is attributed to the point at which the new Task was created.&amp;nbsp; Thus even though the work might be done on another thread, the cost is &#39;rolled up&#39; based on the code that requested that that action be done.&amp;nbsp;&amp;nbsp;&amp;nbsp; This allows concurrent applications to be analyzed like the simple sequential case (where the cost of calling a routine is attributed to the routine that called it).&amp;nbsp;&amp;nbsp;  There is a companion perfView blog entries that you&amp;nbsp;may be interested in.&amp;nbsp;&amp;nbsp; In particular&amp;nbsp;there is a&amp;nbsp;ZIP file of&amp;nbsp;source code and data used in this tutorial, so that you can explore this data and &#39;follow along&#39; yourself with what was done in this video.&amp;nbsp;&amp;nbsp;To use the zip file simply open it, and drag the directory inside to your desktop (or other location).&amp;nbsp;&amp;nbsp; The file contains the EXE and PDB (symbol file), the complete VS2012 source (in the src directory) as well as the BlockedTimeParallel.ETL.ZIP file (The data file used in this video)&amp;nbsp;&amp;nbsp; You don&#39;t need to unzip this file, simply open it in PerfView.&amp;nbsp;&amp;nbsp; You may be interested in the entire&amp;nbsp;PerfView Tutorial video&amp;nbsp;series,&amp;nbsp;&amp;nbsp; </description>
	<link></link>
	<language>en</language>
	<pubDate>Sat, 25 May 2013 13:39:02 GMT</pubDate>
	<lastBuildDate>Sat, 25 May 2013 13:39:02 GMT</lastBuildDate>
	<generator>Rev9</generator>
</channel>
</rss>