<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://code.msdn.microsoft.com/rss.xsl"?><rss version="2.0"><channel><title>XSLT Profiler Add-in for Visual Studio 2008</title><link>http://code.msdn.microsoft.com/xsltprofiler/Project/ProjectRss.aspx</link><description>The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of ...</description><item><title>NEW POST: What about non-VS team edition developers?</title><link>http://code.msdn.microsoft.com/xsltprofiler/Thread/View.aspx?ThreadId=603</link><description>&lt;div class="wikidoc"&gt;
Hi,&lt;br /&gt; &lt;br /&gt;We make very heavy use of very complex XSLT transforms and would dealy love to have some kind of profiling ability. Some of our transforms take over an hour to complete with a relatively small input document (150Mb or so).&lt;br /&gt; &lt;br /&gt;My eyes lit up when I saw a reference to the 'XSLT Profiler' on the VS2008 SP1 download page but then when I read the docs and found its only available for the team edition of VS I was rather disappointed.&lt;br /&gt; &lt;br /&gt;I guess there are no plans to make anything available in the professional version so we just have to go without!&lt;br /&gt; &lt;br /&gt;Norm&lt;br /&gt;
&lt;/div&gt;</description><author>BigNorm</author><pubDate>Wed, 13 Aug 2008 23:54:24 GMT</pubDate><guid isPermaLink="false">NEW POST: What about non-VS team edition developers? 20080813P</guid></item><item><title>UPDATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1.1 (Feb 18, 2008)</title><link>http://code.msdn.microsoft.com/xsltprofiler/Release/ProjectReleases.aspx?ReleaseId=407</link><description>Updated and stabilized for 64 bits Vista and XML menu addition is improved.</description><author></author><pubDate>Thu, 21 Feb 2008 01:36:49 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1.1 (Feb 18, 2008) 20080221A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
Written By: Irinel Crivat, Program Manager&lt;br /&gt;Microsoft, January 2008&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=173" alt="image1.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=174" alt="image2.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=175" alt="image3.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=176" alt="image4.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog: &lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=177" alt="image5.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=178" alt="image6.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt; &lt;br /&gt;At some rare instances even though the XSLT Profiler is installed correctly, and loaded with VS, but does not show up on the XML Menu, you may want to see if the XSLT Profiler command is available at the Tools --&amp;gt; Commands --&amp;gt; Addins --&amp;gt; Profile XSLT. If this command is available at this location, you may drag it to any command bar of your convenience to add the Profile XSLT command button.&lt;br /&gt; &lt;br /&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=179" alt="image7.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=180" alt="image8.gif" /&gt;&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=181" alt="image9.gif" /&gt;&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=182" alt="image10.gif" /&gt;&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=183" alt="image11.gif" /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=184" alt="image12.gif" /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=185" alt="image13.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=186" alt="image14.gif" /&gt;&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=187" alt="image15.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=188" alt="image16.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=189" alt="image17.gif" /&gt;&lt;br /&gt;&lt;h4&gt;
Enabling FastCaps
&lt;/h4&gt;If you would like to have more detailed results on Performance Reports, please add the following key to registry:&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=HKEY_LOCAL_MACHINE%5cSOFTWARE%5cMicrosoft%5cXsltProfiler&amp;amp;referringTitle=Home"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XsltProfiler&lt;/a&gt;&lt;br /&gt;&amp;quot;EnableFastCaps&amp;quot;=&amp;quot;1&amp;quot; &lt;br /&gt;As you can see the reports will start to include all System.Xml runtime calls as well. The better analysis of System.Xml runtime will lead to better performing XSLT Instructions.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome to the Discussions section of this site.&lt;br /&gt;
&lt;/div&gt;</description><author>sinanu</author><pubDate>Thu, 21 Feb 2008 01:35:16 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080221A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
Written By: Irinel Crivat, Program Manager&lt;br /&gt;Microsoft, January 2008&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=173" alt="image1.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=174" alt="image2.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=175" alt="image3.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=176" alt="image4.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog: &lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=177" alt="image5.gif" /&gt;&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=178" alt="image6.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt; &lt;br /&gt;At some rare instances even though the XSLT Profiler is installed correctly, and loaded with VS, but does not show up on the XML Menu, you may want to see if the XSLT Profiler command is available at the Tools --&amp;gt; Commands --&amp;gt; Addins --&amp;gt; Profile XSLT. If this command is available at this location, you may drag it to any command bar of your convenience to add the Profile XSLT command button.&lt;br /&gt; &lt;br /&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=179" alt="image7.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=180" alt="image8.gif" /&gt;&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=181" alt="image9.gif" /&gt;&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=182" alt="image10.gif" /&gt;&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=183" alt="image11.gif" /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=184" alt="image12.gif" /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=185" alt="image13.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=186" alt="image14.gif" /&gt;&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=187" alt="image15.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=188" alt="image16.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=189" alt="image17.gif" /&gt;&lt;br /&gt;&lt;h4&gt;
Enabling FastCaps
&lt;/h4&gt;If you would like to have more detailed results on Performance Reports, please add the following key to registry:&lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=HKEY_LOCAL_MACHINE%5cSOFTWARE%5cMicrosoft%5cXsltProfiler&amp;amp;referringTitle=Home"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XsltProfiler&lt;/a&gt;&lt;br /&gt;&amp;quot;EnableFastCaps&amp;quot;=&amp;quot;1&amp;quot; &lt;br /&gt;As you can see the reports will start to include all System.Xml runtime calls as well. The better analysis of System.Xml runtime will lead to better performing XSLT Instructions.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to &lt;a href="mailto:wdxtools@microsoft.com" class="externalLink"&gt;wdxtools@microsoft.com &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;/div&gt;</description><author>sinanu</author><pubDate>Thu, 21 Feb 2008 01:33:28 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080221A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
Written By: Irinel Crivat, Program Manager&lt;br /&gt;Microsoft, January 2008&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=173" alt="image1.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=174" alt="image2.gif" /&gt;&lt;/li&gt;&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=175" alt="image3.gif" /&gt;&lt;/li&gt;&lt;li&gt;Leave the default install location (or customize) and click Next   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=176" alt="image4.gif" /&gt;&lt;/li&gt;&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog:   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=177" alt="image5.gif" /&gt;&lt;/li&gt;&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=178" alt="image6.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=179" alt="image7.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=180" alt="image8.gif" /&gt;&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=181" alt="image9.gif" /&gt;&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=182" alt="image10.gif" /&gt;&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=183" alt="image11.gif" /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=184" alt="image12.gif" /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=185" alt="image13.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=186" alt="image14.gif" /&gt;&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=187" alt="image15.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=188" alt="image16.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=189" alt="image17.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to &lt;a href="mailto:wdxtools@microsoft.com" class="externalLink"&gt;wdxtools@microsoft.com &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;/div&gt;</description><author>elisaf_MSFT</author><pubDate>Mon, 18 Feb 2008 19:45:52 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080218P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=173" alt="image1.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=174" alt="image2.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=175" alt="image3.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=176" alt="image4.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog:&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=177" alt="image5.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=178" alt="image6.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=179" alt="image7.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=180" alt="image8.gif" /&gt;&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=181" alt="image9.gif" /&gt;&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=182" alt="image10.gif" /&gt;&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=183" alt="image11.gif" /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=184" alt="image12.gif" /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=185" alt="image13.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=186" alt="image14.gif" /&gt;&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=187" alt="image15.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=188" alt="image16.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;   &lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=189" alt="image17.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to &lt;a href="mailto:wdxtools@microsoft.com" class="externalLink"&gt;wdxtools@microsoft.com &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;/div&gt;</description><author>elisaf_MSFT</author><pubDate>Mon, 18 Feb 2008 19:42:23 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080218P</guid></item><item><title>UPDATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1.1 (Feb 18, 2008)</title><link>http://code.msdn.microsoft.com/xsltprofiler/Release/ProjectReleases.aspx?ReleaseId=407</link><description>The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance.&lt;br /&gt;</description><author></author><pubDate>Mon, 18 Feb 2008 19:39:29 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1.1 (Feb 18, 2008) 20080218P</guid></item><item><title>CREATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1.1 (Feb 18, 2008)</title><link>http://code.msdn.microsoft.com/xsltprofiler/Release/ProjectReleases.aspx?ReleaseId=407</link><description>ddd</description><author></author><pubDate>Mon, 18 Feb 2008 19:38:57 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1.1 (Feb 18, 2008) 20080218P</guid></item><item><title>RELEASED: XSLT Profiler for Visual Studio 2008 - V1 (Feb 08, 2008)</title><link>http://code.msdn.microsoft.com/xsltprofiler/Release/ProjectReleases.aspx?ReleaseId=177</link><description>The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance.</description><author></author><pubDate>Fri, 08 Feb 2008 17:59:55 GMT</pubDate><guid isPermaLink="false">RELEASED: XSLT Profiler for Visual Studio 2008 - V1 (Feb 08, 2008) 20080208P</guid></item><item><title>CREATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1 (Feb 08, 2008)</title><link>http://code.msdn.microsoft.com/xsltprofiler/Release/ProjectReleases.aspx?ReleaseId=177</link><description>The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance.</description><author></author><pubDate>Fri, 08 Feb 2008 17:59:55 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: XSLT Profiler for Visual Studio 2008 - V1 (Feb 08, 2008) 20080208P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=173" alt="image1.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=174" alt="image2.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=175" alt="image3.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=176" alt="image4.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog:&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=177" alt="image5.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=178" alt="image6.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=179" alt="image7.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=180" alt="image8.gif" /&gt;&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=181" alt="image9.gif" /&gt;&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=182" alt="image10.gif" /&gt;&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=183" alt="image11.gif" /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=184" alt="image12.gif" /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=185" alt="image13.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=186" alt="image14.gif" /&gt;&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=187" alt="image15.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=188" alt="image16.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=189" alt="image17.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to &lt;a href="mailto:wdxtools@microsoft.com" class="externalLink"&gt;wdxtools@microsoft.com &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;/div&gt;</description><author>elisaf_MSFT</author><pubDate>Fri, 08 Feb 2008 17:52:29 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080208P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup from &lt;br /&gt;&amp;lt;TO BE ADDED &amp;gt;. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=173" alt="image1.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=174" alt="image2.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=175" alt="image3.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=176" alt="image4.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog:&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=177" alt="image5.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=178" alt="image6.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=179" alt="image7.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=180" alt="image8.gif" /&gt;&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=181" alt="image9.gif" /&gt;&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=182" alt="image10.gif" /&gt;&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=183" alt="image11.gif" /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=184" alt="image12.gif" /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=185" alt="image13.gif" /&gt;&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=186" alt="image14.gif" /&gt;&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=187" alt="image15.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=188" alt="image16.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=xsltprofiler&amp;amp;DownloadId=189" alt="image17.gif" /&gt;&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to &lt;a href="mailto:wdxtools@microsoft.com" class="externalLink"&gt;wdxtools@microsoft.com &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;/div&gt;</description><author>elisaf_MSFT</author><pubDate>Sat, 26 Jan 2008 01:14:17 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080126A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup from &lt;br /&gt;&amp;lt;TO BE ADDED &amp;gt;. &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image1.gif]&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image2.gif]&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image3.gif]&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image4.gif]&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog:&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image5.gif]&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image6.gif]&lt;br /&gt; &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;&lt;pre&gt;
Devenv /ResetAddin XsltProfiler.Connect
&lt;/pre&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image7.gif]&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Usage
&lt;/h4&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt; &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image8.gif]&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image9.gif]&lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Performance Report Overview
&lt;/h4&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image10.gif]&lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Summary View
&lt;/h4&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most called functions&lt;/li&gt;&lt;li&gt;Functions with the most individual work&lt;/li&gt;&lt;li&gt;Functions taking the longest&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image11.gif] &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Function View
&lt;/h4&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Function Name &lt;/li&gt;&lt;li&gt;Elapsed Inclusive Time &lt;/li&gt;&lt;li&gt;Elapsed Exclusive Time&lt;/li&gt;&lt;li&gt;Application Inclusive Time&lt;/li&gt;&lt;li&gt;Application Exclusive Time &lt;/li&gt;&lt;li&gt;Number of Calls&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image12.gif] &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt; &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Caller/Callee View
&lt;/h4&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;/li&gt;&lt;li&gt;Current Function: The particular function that was called is listed in the middle part of the view.&lt;/li&gt;&lt;li&gt;Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image13.gif]&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view.&lt;br /&gt; &lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt; &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Calltree View
&lt;/h4&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image14.gif]&lt;br /&gt; &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Marks
&lt;/h4&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image15.gif]&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Modules
&lt;/h4&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image16.gif]&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Process
&lt;/h4&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image17.gif]&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Conclusion
&lt;/h4&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to &lt;a href="mailto:wdxtools@microsoft.com" class="externalLink"&gt;wdxtools@microsoft.com &lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;/div&gt;</description><author>elisaf_MSFT</author><pubDate>Sat, 26 Jan 2008 01:08:22 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080126A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/xsltprofiler/Wiki/View.aspx?title=Home&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h4&gt;
Summary: 
&lt;/h4&gt;This article is a tour of a quick and reliable performance analysis profiler tool that assists in the development and debugging of XSLT documents. The XSLT Profiler allows developers to measure, evaluate, and target performance-related problems in XSLT code by creating detailed XSLT performance reports. The XSLT Profiler includes a wealth of useful hints for XSL and XSLT style sheet optimizations, which are essential for XSLT-based applications that demand maximum performance&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Features: 
&lt;/h4&gt;XSLT Profiler analysis is essential for developers if they need to develop reliable and robust software. The XSLT Profiler is capable of detecting the performance errors and defects in coding so that they are corrected at an early stage in the development, essential in reducing the overall cost of developing software applications. The XSLT Profiler tool is fully integrated into Microsoft Visual Studio 2008 to provide a seamless and approachable user experience, combining several Microsoft technologies, including Microsoft XML Editor and XSLT Debugger, Visual Studio Team System, F1 (Performance Suites), and more.&lt;br /&gt; &lt;br /&gt;&lt;h4&gt;
Installation
&lt;/h4&gt;&lt;b&gt;Note:&lt;/b&gt; The XSLT Profiler is targeted only for the Microsoft Visual Studio 2008 Team System with the Performance Tools feature installed. &lt;br /&gt; &lt;br /&gt;Make sure that you have Visual Studio 2008 RTM Team System with the Performance Tools feature installed successfully on the computer before running the XSLT Profiler’s setup. If the setup fails and reports that one or more of the  required files are missing, try reinstalling Visual Studio 2008 RTM Team Suite with the Performance Tools feature. The XSLT Profiler tool looks for registry entries of the installation; copying only the necessary files for the tool to run. The installation program will be unable to detect whether Performance Tools are installed or not, and when the tool is executed, the execution will fail due to missing instrumentation and profiling features.&lt;br /&gt; &lt;br /&gt;Before running setup, ensure that no instances of Visual Studio are running. To install the XSLT Profiler, download and run the setup from &lt;br /&gt;&amp;lt;TO BE ADDED &amp;gt;. &lt;br /&gt; &lt;br /&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image1.gif]&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;In the Welcome dialog box, click Next and the new wizard page will be displayed.&lt;/li&gt;
&lt;/ol&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image2.gif]&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Read the End-User License Agreement, click the acceptance check box to accept it, and then click Next&lt;/li&gt;
&lt;/ol&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image3.gif]&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Leave the default install location (or customize) and click Next&lt;/li&gt;
&lt;/ol&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image4.gif]&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Click the Install button to start the installation. When complete, click Finish in the confirmation dialog:&lt;/li&gt;
&lt;/ol&gt;&lt;span class="unresolved"&gt;Cannot resolve link: &lt;/span&gt;[image:image5.gif]&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;When complete, click Finish in the confirmation dialog box.&lt;/li&gt;
&lt;/ol&gt;[image:]&lt;br /&gt;Now, the XSLT Profiler is available on your computer. To validate this, open the Add-in Manager in Visual Studio (in the Tools menu, click the Add-In Manager option).   &lt;br /&gt;If the installation was successful, the XSLT Profiler will be available in the list and checked.&lt;br /&gt;If the XSLT Profiler fails to load in Visual Studio, open a Visual Studio 2008 Command Prompt and run the command:&lt;br /&gt;Devenv /ResetAddin XsltProfiler.Connect&lt;br /&gt;To uninstall the XSLT Profiler, click the Remove button in the Add/Remove Programs dialog box: &lt;br /&gt; &lt;br /&gt;Usage&lt;br /&gt;The XSLT Profiler is fully integrated with the Visual Studio UI and offers similar form and usage to that of other performance tools in Visual Studio. Note that the performance tuning is only relevant to XslCompiledTransform when using the XSLT Profiler. Other processors may show completely different results.  &lt;br /&gt;After opening an XSLT document in Visual Studio, a new option will be available in the XML menu, called Profile XSLT:&lt;br /&gt; &lt;br /&gt;To get started using the XSLT Profiler, open an XSLT document and choose the Profile XSLT option in the XML menu. Note that an input XML document is also required; if it is not already provided, you will be prompted for the file. &lt;br /&gt; &lt;br /&gt;As soon as the analysis starts, a notification displays the progress within the document. The XSLT output is visible in the output pane.&lt;br /&gt;Performance Report Overview&lt;br /&gt;After a performance session ends, the data gathered during profiling is saved in a performance report. A performance report allows you to view and analyze XSLT performance problems. &lt;br /&gt; &lt;br /&gt;Performance reports have several views that can be changed from the Current View drop down list.&lt;br /&gt;Summary View&lt;br /&gt;By default, a performance report is displayed in the Summary view. This view is a starting point in your investigation to determine performance issues with your XSLT documents. The Summary view lists the following data points:&lt;br /&gt;•	Most called functions&lt;br /&gt;•	Functions with the most individual work&lt;br /&gt;•	Functions taking the longest&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;By default, there are three columns for each data point: Name (of the function), and the Number of Calls in absolute value and in percentage value. From each data point in the Summary view, you can navigate to more detailed views by right-clicking on the function data points.&lt;br /&gt;Function View&lt;br /&gt;The Function view lists functions called during profiling. You can sort the data by clicking a column name. The columns displayed by default are:&lt;br /&gt;•	Function Name &lt;br /&gt;•	Elapsed Inclusive Time &lt;br /&gt;•	Elapsed Exclusive Time&lt;br /&gt;•	Application Inclusive Time&lt;br /&gt;•	Application Exclusive Time &lt;br /&gt;•	Number of Calls&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;All time columns are displayed in both absolute values and percentages. The term “exclusive” refers to the total time a function spent executing and does not include time spent by other functions that were called during the execution of this function. &lt;br /&gt;The term “inclusive” refers to the total time a function spent executing, including execution time of all the functions it called and whether any of those called functions called other functions in turn. &lt;br /&gt;Caller/Callee View&lt;br /&gt;The Caller/Callee view has the following three distinct parts:&lt;br /&gt;•	Functions That Called: All the functions that called a particular function are listed at the top part of the view. &lt;br /&gt;•	Current Function: The particular function that was called is listed in the middle part of the view.&lt;br /&gt;•	Functions That Were Called by: All the functions that were called by the particular function are listed at the bottom part of the view.&lt;br /&gt; &lt;br /&gt;If a function named SyncToNavigator  appears in the middle part of the view, all the functions that called the SyncToNavigator  function appear in the top part of the view and all the functions that were called by the SyncToNavigator  appear in the bottom part of the view:&lt;br /&gt;You can change the function in the middle part of the view by double-clicking any of the function listed in the other two parts of the view. The view is then updated automatically to reflect the changes. &lt;br /&gt;You can also sort the data by clicking column names. &lt;br /&gt;Calltree View&lt;br /&gt;This view is a tree view of program execution. &lt;br /&gt;  &lt;br /&gt;The Calltree view shows the root of the tree as the process name and the functions are the nodes of the tree. This view allows you to drill into specific call traces and analyze which traces have the greatest performance impact. The view is similar to the call stack view found during the debugging application. In addition to the columns you saw in the Function view (Function Name, Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, Number of Calls), in the Calltree view, there is an additional column to display the Module Name.&lt;br /&gt;Marks&lt;br /&gt;With The XSLT Profiler, we have the concept of “marks” that show up in the data collection stream with a comment associated with them. When you tell the XSLT Profiler to collect XSLT performance counters, the counters get collected every time one of these marks gets executed. The data is displayed in a table containing the Mark ID, Mark Name (Start Program, End Program), and the Time Stamp. The “marks” are not aggregated and show up in chronological order in the “Marks” view of the performance report.. &lt;br /&gt; &lt;br /&gt;Modules&lt;br /&gt;The Modules view is a flat list of all functions aggregated to the module level. Expand or collapse the module name to display or close the view of module performance data. You can sort the data by clicking a column name. By default, there are both absolute values and percentage numbers for Elapsed Inclusive Time, Elapsed Exclusive Time, Application Inclusive Time, Application Exclusive Time, and Number of Calls.&lt;br /&gt; &lt;br /&gt;Process&lt;br /&gt;The Process view displays a table that includes the Process ID, Process Name, Begin Time, and the End Time. Data can be sorted by clicking column names.&lt;br /&gt; &lt;br /&gt;Conclusion&lt;br /&gt;The new XSLT Profiler add-in for Visual Studio 2008 is essential for measuring, evaluating, and targeting performance-related problems. Feedback and suggestions are welcome by e-mail to wdxtools@microsoft.com. &lt;br /&gt;
&lt;/div&gt;</description><author>elisaf_MSFT</author><pubDate>Fri, 25 Jan 2008 03:16:17 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080125A</guid></item></channel></rss>