{"id":6625,"date":"2024-11-21T15:14:22","date_gmt":"2024-11-21T23:14:22","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/pix\/?p=6625"},"modified":"2025-02-24T08:33:26","modified_gmt":"2025-02-24T16:33:26","slug":"range-details-v2-pivot-tables","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/pix\/range-details-v2-pivot-tables\/","title":{"rendered":"Timing Capture Range Details &#8220;v2&#8221;"},"content":{"rendered":"<p>Release <a href=\"https:\/\/devblogs.microsoft.com\/pix\/pix-2412-12\/\">2412.12 of PIX on Windows<\/a> includes a Preview of a new implementation of the Range Details view in <a href=\"https:\/\/devblogs.microsoft.com\/pix\/timing-captures-new\/\">Timing Captures<\/a>.<\/p>\n<p>The initial implementation of the Range Details view allowed you to list individual data items for a given range of time.\u00a0 While this capability provided several basic scenarios, it was not flexible enough to support many of the analysis scenarios that PIX users have requested over the last few years.<\/p>\n<p>Limitations of the current Range Details view include a limited, hard-coded set of filtering and grouping capabilities per data type.\u00a0 Additionally, aggregations are not provided for most of the data types.\u00a0 We added aggregation for a few data types, such as sampled functions and memory allocations, but even in these cases, the set of aggregation dimensions were limited and hard-coded.\u00a0 Finally, there is no way to bridge the gap between aggregated data and the set of individual items that are part of the aggregation.<\/p>\n<p>Here are a few examples of analysis scenarios that PIX users have asked for, but that couldn&#8217;t be satisfied with the current Range Details view:<\/p>\n<ul>\n<li>I have a PIX event or function that performs a given task on multiple threads.\u00a0 For example, I have a PIX event representing my job system work, and I distribute that work across a thread pool.\u00a0 How can I determine the total time I spent executing jobs across all threads on which it ran?<\/li>\n<li>I&#8217;d like a way to filter the set of PIX events down to only those in which a given sample occurred.\u00a0 Right now, I have to select each event, and view it in the timeline to find those that have the sample I&#8217;m interested in.<\/li>\n<li>Given a callstack that results in several memory allocations, how can I find the individual allocations produced by that callstack?<\/li>\n<\/ul>\n<p>The new Range Details view is built to be flexible enough to answer these types of questions.\u00a0 The flexibility comes from the combination of a pivot table, an event list and a set of filters.\u00a0 The pivot table lets you aggregate the data on multiple dimensions, in an arbitrary order.\u00a0 The event list shows the individual items that make up the aggregation.\u00a0 Finally, filters can be used to restrict the data contained in the aggregation and the event list.<\/p>\n<p>The following figure shows the primary elements of the new implementation of Range Details.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-overview-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6711\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-overview-1.png\" alt=\"Image pix timing capture pivot overview\" width=\"1492\" height=\"742\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-overview-1.png 1492w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-overview-1-300x149.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-overview-1-1024x509.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-overview-1-768x382.png 768w\" sizes=\"(max-width: 1492px) 100vw, 1492px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Example: Summing the durations of a PIX event across multiple threads<\/h3>\n<p>Using the new view, we can answer the questions posed above, starting with:<\/p>\n<p style=\"padding-left: 40px;\">&#8220;I have a PIX event or function that performs a given task on multiple threads.\u00a0 For example, I have a PIX event representing my job system work, and I distribute that work across a thread pool.\u00a0 How can I determine the total time I spent executing jobs across all threads on which it ran?&#8221;<\/p>\n<p>Start by selecting a time range, then choose <em>PIX CPU Events and Markers<\/em> from the <strong>Data Type<\/strong> dropdown.\u00a0 In this initial state, the pivot table contains an aggregation of all PIX events and markers and the event list contains all of the individual data items.<\/p>\n<p>The PIX event representing a job system that is distributed across several threads is named <em>ExecuteJob<\/em>.\u00a0 To find <em>ExecuteJob<\/em> in the aggregation, add a pivot by <em>PIX Event Stack<\/em> by selecting that item from the <em>Add<\/em> dropdown.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-first-pivot.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6637\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-first-pivot.png\" alt=\"Image pix timing capture pivot first pivot\" width=\"930\" height=\"503\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-first-pivot.png 930w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-first-pivot-300x162.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-first-pivot-768x415.png 768w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/p>\n<p>The pivot table now groups all PIX events and markers by the stack in which they are contained.\u00a0 Next, because we&#8217;re only interested in our job system work, filter the pivot table to just the data for the <em>ExecuteJob<\/em> event.\u00a0 Find the event in the aggregation, then select <em>Filter To Selection<\/em> from the right click context menu.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6638\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to.png\" alt=\"Image pix timing capture pivot filter to\" width=\"920\" height=\"751\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to.png 920w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-300x245.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-768x627.png 768w\" sizes=\"(max-width: 920px) 100vw, 920px\" \/><\/a><\/p>\n<p>Applying the filter changes the view in three ways.\u00a0 First, the pivot table now contains aggregated data for only the <em>ExecuteJob<\/em> event.\u00a0 Second, the event details table now includes rows for all instances of <em>ExecuteJob<\/em> for the selected time range.\u00a0 And finally, the <strong>Filters<\/strong> pane now contains the filter for <em>ExecuteJob<\/em>.\u00a0 The <strong>Duration<\/strong> column shows the sum of the durations of <em>ExecuteJob<\/em> across all threads on which it ran, in this case just over 18 seconds.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-pix-event.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6640\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-pix-event.png\" alt=\"Image pix timing capture pivot filter to pix event\" width=\"1027\" height=\"502\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-pix-event.png 1027w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-pix-event-300x147.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-pix-event-1024x501.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-filter-to-pix-event-768x375.png 768w\" sizes=\"(max-width: 1027px) 100vw, 1027px\" \/><\/a><\/p>\n<p>To break down the instances of <em>ExecuteJob<\/em> by thread, use the <em>Add<\/em> dropdown to add another pivot, this time by thread.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-second-pivot.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6644\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-second-pivot.png\" alt=\"Image pix timing capture pivot second pivot\" width=\"445\" height=\"201\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-second-pivot.png 445w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-second-pivot-300x136.png 300w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/a><\/p>\n<p>The pivot table now shows that instances of <em>ExecuteJob<\/em> ran across 3 threads: <em>WorkerH1<\/em>, <em>WorkerL2<\/em> and <em>WorkerL1<\/em>.\u00a0 The <em>Count<\/em> and <em>Duration<\/em> columns show the number of instances and the sum of the durations for each thread.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-event-by-thread.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6645\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-event-by-thread.png\" alt=\"Image pix timing capture pivot event by thread\" width=\"1030\" height=\"503\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-event-by-thread.png 1030w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-event-by-thread-300x147.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-event-by-thread-1024x500.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-event-by-thread-768x375.png 768w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/a><\/p>\n<p>The <strong>Duration<\/strong> column can display other data values for the event, not just the <em>Exc Sum<\/em>.\u00a0 Use the dropdown on the <strong>Duration<\/strong> to column to view other data values, such as the <em>Max<\/em> duration of all instances, the <em>Average<\/em> duration and so on.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-other-data-values.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6647\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-other-data-values.png\" alt=\"Image pix timing capture pivot other data values\" width=\"1025\" height=\"495\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-other-data-values.png 1025w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-other-data-values-300x145.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-other-data-values-768x371.png 768w\" sizes=\"(max-width: 1025px) 100vw, 1025px\" \/><\/a><\/p>\n<p>Finally, note that multiple filters may be used together. For example, to restrict the data further by only looking at the data for the instances of <em>ExecuteJob<\/em> than ran on <em>WorkerH1<\/em>, right click on the appropriate row in the pivot table and choose <em>Filter To Selection<\/em>.<\/p>\n<h3>Example: Finding all PIX events in which a given sample lands<\/h3>\n<p>In this example, I want to find all the PIX events in which a given sampled function lands.\u00a0 The function I&#8217;m looking for is <em>ResizeBuffer<\/em>.\u00a0 To start, select <em>CPU Samples<\/em> from the <strong>Data Type<\/strong> dropdown and then add a pivot on <em>Function List<\/em> using the <strong>Add<\/strong> dropdown.\u00a0 Then find <em>ResizeBuffer<\/em> in the pivot table.<\/p>\n<p style=\"padding-left: 40px;\"><strong>Note:<\/strong> Searching in the pivot table and the event list is not supported in this Preview.\u00a0 Searching capability will be added in a future release.<\/p>\n<p>Filter the pivot table to just those samples that landed in <em>ResizeBuffer<\/em> by right clicking on the function and choosing <em>Filter To Selection<\/em> from the context menu.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-function-list.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6650\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-function-list.png\" alt=\"Image pix timing capture pivot cpu samples by function list\" width=\"826\" height=\"716\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-function-list.png 826w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-function-list-300x260.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-function-list-768x666.png 768w\" sizes=\"(max-width: 826px) 100vw, 826px\" \/><\/a><\/p>\n<p>The pivot table now contains only those samples that landed in the <em>ResizeBuffer<\/em> functions or one of its callers, including all callers in the callstack.\u00a0 Add a pivot by <em>PIX Event Stack<\/em> using the <strong>Add<\/strong> dropdown the view the PIX events in which CPU samples for <em>ResizeBuffer<\/em> occurred.\u00a0 Looking at the PIX event stacks under the <em>ResizeBuffer<\/em> function in the pivot table shows that CPU samples that landed in the <em>ResizeBuffer<\/em> function occurred when <em>ResizeBuffer<\/em> was called from two PIX events: <em>CheckWorldSize<\/em> and <em>RunSimulation<\/em>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-pix-event-stack.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6651\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-pix-event-stack.png\" alt=\"Image pix timing capture pivot cpu samples by pix event stack\" width=\"1027\" height=\"521\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-pix-event-stack.png 1027w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-pix-event-stack-300x152.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-pix-event-stack-1024x519.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-by-pix-event-stack-768x390.png 768w\" sizes=\"(max-width: 1027px) 100vw, 1027px\" \/><\/a><\/p>\n<p>As an example of the flexibility provided by the pivot table, note that the pivots can be reversed.\u00a0 Rather than grouping first by <em>Function List<\/em>, then <em>PIX Event Stack<\/em>, grouping by <em>PIX Event Stack<\/em> first and then <em>Function List<\/em> shows all functions in which CPU samples landed during a given PIX event.\u00a0 The figure below shows the samples in <em>ResizeBuffer<\/em> that occurred within the CheckWorldSize PIX event.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-pivots-reversed.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6653\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-pivots-reversed.png\" alt=\"Image pix timing capture pivot cpu samples pivots reversed\" width=\"977\" height=\"564\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-pivots-reversed.png 977w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-pivots-reversed-300x173.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-cpu-samples-pivots-reversed-768x443.png 768w\" sizes=\"(max-width: 977px) 100vw, 977px\" \/><\/a><\/p>\n<h3>Other features<\/h3>\n<h4>Presets<\/h4>\n<p>In the examples above, each dimension was added individually to the pivot table using the <em>Add<\/em> dropdown.\u00a0 The pivot table also offers a &#8220;preset&#8221; number of pivots for common scenarios.\u00a0 For example, the memory-related data types offer preset pivots based on allocation lifetime, callstacks, PIX event stacks and threads.\u00a0 The presets for file io data include pivots based on device, thread, file operation and so on.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-presets.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6656\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-presets.png\" alt=\"Image pix timing capture pivot presets\" width=\"1131\" height=\"322\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-presets.png 1131w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-presets-300x85.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-presets-1024x292.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-presets-768x219.png 768w\" sizes=\"(max-width: 1131px) 100vw, 1131px\" \/><\/a><\/p>\n<h4>Element Details and the Pivot Table<\/h4>\n<p>Selecting the &#8220;<em>&#8230;<\/em>&#8221; box for an entry in the pivot table populates the <strong>Element Details<\/strong> view with information about that level of the aggregation.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-element-details.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6658\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-element-details.png\" alt=\"Image pix timing capture pivot element details\" width=\"1145\" height=\"574\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-element-details.png 1145w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-element-details-300x150.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-element-details-1024x513.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2024\/11\/pix-timing-capture-pivot-element-details-768x385.png 768w\" sizes=\"(max-width: 1145px) 100vw, 1145px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Release 2412.12 of PIX on Windows includes a Preview of a new implementation of the Range Details view in Timing Captures. The initial implementation of the Range Details view allowed you to list individual data items for a given range of time.\u00a0 While this capability provided several basic scenarios, it was not flexible enough to [&hellip;]<\/p>\n","protected":false},"author":1915,"featured_media":6647,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6625","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pix"],"acf":[],"blog_post_summary":"<p>Release 2412.12 of PIX on Windows includes a Preview of a new implementation of the Range Details view in Timing Captures. The initial implementation of the Range Details view allowed you to list individual data items for a given range of time.\u00a0 While this capability provided several basic scenarios, it was not flexible enough to [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/6625","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=6625"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/6625\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/media\/6647"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/media?parent=6625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/categories?post=6625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/tags?post=6625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}