{"id":5253,"date":"2021-02-01T16:59:23","date_gmt":"2021-02-02T00:59:23","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/pix\/?p=5253"},"modified":"2021-02-02T11:40:55","modified_gmt":"2021-02-02T19:40:55","slug":"function-summary-and-callgraph-captures-are-now-deprecated","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/pix\/function-summary-and-callgraph-captures-are-now-deprecated\/","title":{"rendered":"Function Summary and Callgraph captures are now deprecated"},"content":{"rendered":"<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/function-summary-captures\/\">Function Summary<\/a> and <a href=\"https:\/\/devblogs.microsoft.com\/pix\/callgraph-captures\/\">Callgraph<\/a> captures are deprecated starting with the <a href=\"https:\/\/devblogs.microsoft.com\/pix\/pix-2101-27\/\">2102.27 release of PIX on Windows<\/a>.<\/p>\n<p>The workflows supported by these legacy capture types have been replaced with enhancements we&#8217;re recently made to the <a href=\"https:\/\/devblogs.microsoft.com\/pix\/analyzing-cpu-samples-in-timing-captures\/\">Sampling Profiler<\/a> that is part of <a href=\"https:\/\/devblogs.microsoft.com\/pix\/timing-captures-new\/\">Timing Captures<\/a>.\u00a0 These enhancements include the ability to group the tree of aggregated CPU samples by thread or core, and the ability to designate a function as a <em>focus function<\/em>.\u00a0 In addition,\u00a0 the integration of function data into Timing Captures enables some profiling scenarios that weren&#8217;t possible before, such as the ability to restrict the set of CPU samples you&#8217;re analyzing to be those that were collected during the time when one or more PIX events was executing.<\/p>\n<p>To access the Sampling Profiler, choose a sampling interval and select the <strong>CPU Samples<\/strong> checkbox when starting a capture.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2020\/12\/pix-sampling-profiler-options.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5136\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2020\/12\/pix-sampling-profiler-options.png\" alt=\"Image pix sampling profiler options\" width=\"507\" height=\"583\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2020\/12\/pix-sampling-profiler-options.png 507w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2020\/12\/pix-sampling-profiler-options-261x300.png 261w\" sizes=\"(max-width: 507px) 100vw, 507px\" \/><\/a><\/p>\n<p>After the capture opens, an aggregated tree of the collected samples can be accessed by selecting <strong>Sampled Functions<\/strong> from the <strong>Items to show<\/strong> dropdown in the <strong>Range Details<\/strong> view.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_timing_capture_sampled_functions.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5256\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_timing_capture_sampled_functions.png\" alt=\"Image pix timing capture sampled functions\" width=\"1265\" height=\"726\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_timing_capture_sampled_functions.png 1265w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_timing_capture_sampled_functions-300x172.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_timing_capture_sampled_functions-1024x588.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_timing_capture_sampled_functions-768x441.png 768w\" sizes=\"(max-width: 1265px) 100vw, 1265px\" \/><\/a><\/p>\n<p>Function Summary Captures were commonly used to find a title\u2019s most expensive functions in terms of Inclusive and Exclusive duration. The Sampling Profiler now provides this capability via a flat function list that is created by aggregating the CPU samples collected while a Timing Capture is running. The function list can be accessed by selecting <strong>Function List<\/strong> in the <strong>Display Options<\/strong> panel while viewing <strong>Sampling Functions<\/strong>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-aggregated-range-details-flat-list-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5258\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-aggregated-range-details-flat-list-1.png\" alt=\"Image pix sampling profiler aggregated range details flat list\" width=\"1346\" height=\"681\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-aggregated-range-details-flat-list-1.png 1346w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-aggregated-range-details-flat-list-1-300x152.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-aggregated-range-details-flat-list-1-1024x518.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-aggregated-range-details-flat-list-1-768x389.png 768w\" sizes=\"(max-width: 1346px) 100vw, 1346px\" \/><\/a><\/p>\n<p>Callgraph Captures were commonly used to analyze the full callgraph of a specified function to find the call path called most frequently, the path that took the longest to execute and so on. This capability is provided in the\u00a0Sampling Profiler\u00a0by allowing you to view the calltree based on a\u00a0<em>focused function<\/em>. Selecting a function as a\u00a0<em>focus function<\/em>\u00a0rebuilds the stack tree based on all calls to that function. The focused function becomes the top node in the tree with its entire calltree displayed as children. To select a function to focus on, right click on a function in the\u00a0<strong>Range Details<\/strong>\u00a0view and choose the\u00a0<strong>Set Focus Function<\/strong>\u00a0from the context menu.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-focus-function-menu-option.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5260\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-focus-function-menu-option.png\" alt=\"Image pix sampling profiler focus function menu option\" width=\"1009\" height=\"446\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-focus-function-menu-option.png 1009w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-focus-function-menu-option-300x133.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-focus-function-menu-option-768x339.png 768w\" sizes=\"(max-width: 1009px) 100vw, 1009px\" \/><\/a><\/p>\n<p>The stack tree will be rebuilt with the selected function as the focus. The options to group by thread and core, and to restrict the set of samples based on one or more PIX events can be used to further customize how the data is displayed. The following figure shows a stack tree with the function UpdateEnemyPositions as the focus function.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-stack-tree-focus-function-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5261\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-stack-tree-focus-function-1.png\" alt=\"Image pix sampling profiler stack tree focus function\" width=\"954\" height=\"466\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-stack-tree-focus-function-1.png 954w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-stack-tree-focus-function-1-300x147.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix-sampling-profiler-stack-tree-focus-function-1-768x375.png 768w\" sizes=\"(max-width: 954px) 100vw, 954px\" \/><\/a><\/p>\n<p>If you should need to access the deprecated Function Summary or Callgraph Captures for any reason, you can do so by selecting the <strong>Enable legacy Callgraph and Function Summary capture types<\/strong>\u00a0checkbox on PIX\u2019s\u00a0<strong>Settings<\/strong>\u00a0page.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_deprecated_rmln_captures-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5251\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_deprecated_rmln_captures-1.png\" alt=\"Image pix deprecated rmln captures\" width=\"736\" height=\"473\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_deprecated_rmln_captures-1.png 736w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2021\/02\/pix_deprecated_rmln_captures-1-300x193.png 300w\" sizes=\"(max-width: 736px) 100vw, 736px\" \/><\/a><\/p>\n<p>Finally, if you used Function Summary or Callgraph captures for workflows that aren&#8217;t covered by the Sampling Profiler, be sure to let us know.\u00a0 Send us an email using the PIX Feedback button in the upper left corner of the PIX UI.<\/p>\n<p>Steven.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Function Summary and Callgraph captures are deprecated starting with the 2102.27 release of PIX on Windows. The workflows supported by these legacy capture types have been replaced with enhancements we&#8217;re recently made to the Sampling Profiler that is part of Timing Captures.\u00a0 These enhancements include the ability to group the tree of aggregated CPU samples [&hellip;]<\/p>\n","protected":false},"author":1915,"featured_media":4769,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pix"],"acf":[],"blog_post_summary":"<p>Function Summary and Callgraph captures are deprecated starting with the 2102.27 release of PIX on Windows. The workflows supported by these legacy capture types have been replaced with enhancements we&#8217;re recently made to the Sampling Profiler that is part of Timing Captures.\u00a0 These enhancements include the ability to group the tree of aggregated CPU samples [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/5253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/users\/1915"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/comments?post=5253"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/5253\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/media\/4769"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/media?parent=5253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/categories?post=5253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/tags?post=5253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}