How Fast is SciChart’s WPF Chart? DirectX vs. Software Comparison
Tags: chart
Published: 2024-05-02 09:02:43

<!-- wp:html -->
<div style="background-color: #f3f3f3; border: 1px solid #E3E3E3; padding: 20px 20px 0px 20px;">
<h2><span style="color: #078e26;">//</span> Are you looking for the Fastest/Best WPF Charts?</h2>
<div class="column one-second column_column">
<p>We recently published an article titled Why SciChart: the Best WPF Charts, with <a href="https://www.scichart.com/why-scichart-the-best-wpf-chart/">8 reasons why to choose SciChart for your projects</a>. Top of the list is performance!</p>
<p><em>"With DirectX hardware acceleration, smart and lossless data-point resampling and an optimized render pipeline, <strong>SciChart provides extremely fast WPF charts capable of drawing <a href="https://www.scichart.com/ten-billion-data-points-tech-demo/">billions of data-points</a> ...</strong>" <a href="https://www.scichart.com/why-scichart-the-best-wpf-chart/" target="_blank" rel="noopener noreferrer">[read more]</a></em></p>
<p>Read on to see what our customers say and reasons to choose SciChart for your WPF Chart project</p>
<p><a class="button button-highlight" style="margin-bottom: 0px;" tabindex="0" href="https://www.scichart.com/why-scichart-the-best-wpf-chart/" target="_blank" rel="noopener noreferrer">WHY SCICHART: THE BEST WPF CHARTS</a></p>
</div>
<div class="column one-second column_column">
<div class="aos-init aos-animate" style="margin-top: 0px !important;" data-aos="fade-left" data-aos-duration="1000" data-aos-delay="500">
<div class="videowrapper">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/XB7rZYUcKvY?rel=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>
</div>
</div>
</div>
<div class="clear">&nbsp;</div>
</div>
<br/>
<!-- /wp:html -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span> Introduction</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><em>Test results demonstrate that SciChart's <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>, available in the <a href="http://store.scichart.com">SciChart Enterprise and SDK Editions</a>, is up to 30x faster than software rendering, and median speed increase is 4x faster than software. In a variety of test results and chart types <a href="http://support.scichart.com/index.php?/Knowledgebase/Article/View/17261/0/high-quality-vs-high-speed-vs-directx-renderer-plugins">SciChart's DirectX Renderer plugin</a> excelled in performance vs. software!</em></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span> Measuring WPF Chart Performance</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>WPF Chart Performance is really important to us at SciChart. We strive to have the best, and the&nbsp;<a href="https://www.scichart.com/wpf-chart-features">fastest WPF Chart</a> components in the world, but how do we demonstrate&nbsp;what we've achieved&nbsp;vs. our competitors to would-be customers?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We've created an application which measures our WPF Chart Performance in a number of scenarios, such as line, scatter, scrolling-line and many-series scenarios. The tests are designed to really stress the chart control and find it's limits.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>There there are several factors which influence overall performance of a <a href="https://www.scichart.com/">WPF Chart</a> Control. Such as:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>Number of Series in the chart</li><li>Types of Series (e.g. Line, Scatter, Area, Candlestick)</li><li>Number of data-points per series</li><li>Rate of change of data (number of points appended or removed per second)</li><li>Thickness of pens / number of pixels filled</li><li>Size of the chart viewport&nbsp;on screen</li><li>Number of transformations between data &amp; pixel coordinates per second</li><li>Any additional calculations like Logarithmic Axis scaling or Auto Ranging</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>These are reflected in the test cases and show stress on different areas of the renderer.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span>&nbsp;The Test Setup</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":4} -->
<h4>Test Setup Configuration</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>As you may know, <a href="http://support.scichart.com/index.php?/Knowledgebase/Article/View/17261/0/high-quality-vs-high-speed-vs-directx-renderer-plugins">SciChart ships with several RenderSurface plugins</a> including the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>, <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighQualityRasterizer.HighQualityRenderSurface.html">HighQualityRenderSurface</a>, and now, the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>, a DirectX10/11 harware-accelerated RenderSurface implementation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>We've tested the latest release of SciChart: v5.1, and compared the three renderer plugins&nbsp;across a number of different scenarios in order&nbsp;to highlight the difference in performance of the SciChart RenderSurface implementations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>What Tests are Run</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A number of tests are run in our <a href="https://www.scichart.com/">WPF Chart</a> Performance Comparison app which stress different areas of the renderer. These tests are designed to really stress the chart, by having huge numbers of series, or points, or many updates per second.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>A certain test is run, and FPS, or refresh rate,&nbsp;is measured via the <a href="https://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.SciChartSurfaceBase~Rendered_EV.html">SciChartSurface.Rendered</a> event, which fires once after each drawing pass completes.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The test cases are as follows:</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Test 1: NxM Series Test</strong></p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"left","id":11523} -->
<div class="wp-block-image"><figure class="alignleft"><a href="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test1-NxM-Series.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test1-NxM-Series-150x150.png" alt="SciChart Performance Test 1 - NxM Series" class="wp-image-11523"/></a><figcaption>SciChart Performance Test1: NxM Series</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>N series of M points are appended to an <a href="https://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.Model.DataSeries.XyDataSeries%602.html">XyDataSeries</a>, then the chart redraws (the same data) as fast as possible for 20 seconds per test. FPS is measured using the time elapsed between subsequent <a href="https://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.SciChartSurfaceBase~Rendered_EV.html">SciChartSurface.Rendered</a> events.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Areas Stressed</strong>: Iterating Data Series, Coordinate Transformation and Drawing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><em><strong>NOTE</strong>: Resampling is not applicable for short data-series (below a few thousand points) so this tests iterating over many&nbsp;data-series, coordinate transformation as well as raw drawing speed.</em></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="clear: both;">&nbsp;</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p><strong>Test 2: Scatter Series Test</strong></p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"left","id":11524} -->
<div class="wp-block-image"><figure class="alignleft"><a href="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test2-Scatter-Series.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test2-Scatter-Series-150x150.png" alt="SciChart Performance Test 2 - Scatter Series" class="wp-image-11524"/></a><figcaption>SciChart Performance Test2: Scatter Series</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>N Scatter points are appended to a <a href="https://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.Model.DataSeries.XyDataSeries%602.html">XyDataSeries</a>, then the chart redraws. Immediately after, the points are updated in a Brownian motion fashion and the chart is drawn again. The FPS is measured using the time elapsed between subsequent <a href="https://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.SciChartSurfaceBase~Rendered_EV.html">SciChartSurface.Rendered</a> events.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Areas Stressed:</strong> Coordinate Transformation, Geometry Generation (Ellipse) and Drawing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><em><strong>NOTE</strong>: Resampling is not applicable for Scatter Series as our standard resampling algorithms do not work with scatter data, so this test effectively tests the geometry generation and drawing speed.</em></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="clear: both;">&nbsp;</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p><strong>Test 3: FIFO Series Test</strong></p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"left","id":11525} -->
<div class="wp-block-image"><figure class="alignleft"><a href="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test3-Fifo-Series.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test3-Fifo-Series-150x150.png" alt="SciChart Performance Test 3 - Fifo Series" class="wp-image-11525"/></a><figcaption>SciChart Performance Test3: Fifo Series</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>N points are appended to a FIFO (circular buffer) series, then a single point is appended (and one dropped), which triggers a redraw of the chart. The FPS is measured using the time elapsed between subsequent <a href="https://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.SciChartSurfaceBase~Rendered_EV.html">SciChartSurface.Rendered</a> events.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Areas Stressed:</strong> Copying Circular Buffers (FIFO Series), Resampling and Drawing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><em><strong>NOTE</strong>: Because the data is random (0-1) lots of pixels are drawn. A heavier emphasis on drawing occurs in this test than resampling, although at higher point counts resampling starts to kick in</em></p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="clear: both;">&nbsp;</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p><strong>Test 4: Append Data Test</strong></p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"left","id":11526} -->
<div class="wp-block-image"><figure class="alignleft"><a href="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test4-Append-Noisy0.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test4-Append-Noisy0-150x150.png" alt="SciChart Performance Test 4 - Append (NoiseFactor=0)" class="wp-image-11526"/></a><figcaption>SciChart Performance Test4: Append (NoiseFactor=0)</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:image {"align":"left","id":11528} -->
<div class="wp-block-image"><figure class="alignleft"><a href="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test4-Append-Noisy100.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test4-Append-Noisy100-150x150.png" alt="SciChart Performance Test 4 - Append (NoiseFactor=100)" class="wp-image-11528"/></a><figcaption>SciChart Performance Test4: Append (NoiseFactor=100)</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:image {"align":"left","id":11529} -->
<div class="wp-block-image"><figure class="alignleft"><a href="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test4-Append-Noisy1000.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/SciChart-Performance-Comparison-Test4-Append-Noisy1000-150x150.png" alt="SciChart Performance Test 4 - Append (NoiseFactor=1000)" class="wp-image-11529"/></a><figcaption>SciChart Performance Test4: Append (NoiseFactor=1000)</figcaption></figure></div>
<!-- /wp:image -->

<!-- wp:html -->
<div style="clear: both;">&nbsp;</div>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>N/3 points are appended to 3 DataSeries, then M points are appended between each draw of the chart. The data is random-walk but we vary noise to create more, or less noisy waves. This has the effect of stressing drawing more (when more noisy) vs. resampling more (when less noisy).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>Areas stressed:</strong> Appending Data, Resampling, Auto-Ranging and Drawing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><em><strong>NOTE</strong>: As the noise factor is increased, more pixels must be drawn, which stresses the rendering (drawing) more. For lower noise, resampling is the dominant influence on performance.</em></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Test Setup Hardware</h4>
<!-- /wp:heading -->

<!-- wp:list -->
<ul><li>For the Test Setup we have used&nbsp;a desktop workstation with
<ul>
<li>Intel i7-5820K 3.3GHz</li>
<li>32GB DDR3-2400 RAM</li>
<li>2GB NVidia GTX760 video card</li>
<li>Windows 8.1 Professional</li>
</ul>
</li><li>Tests were run on a 16:10 1900x1200 monitor with the Test Suite application maximised.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>For SciChart's <a href="https://www.scichart.com/wpf-chart-features">WPF Chart</a>, the CPU and RAM speed are the biggest influencers on overall performance. For the DirectX Renderer the GPU becomes more significant.&nbsp;Please note, that we get decent numbers on a dual-core laptop. You don't need a powerful machine to get good results, but it helps (especially for DirectX).</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span> Test Results</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>We've included the&nbsp;test results below:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>All test result numbers are in FPS (Frames per second), meaning, the average number of redraws per second during the test, as measured by the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Charting~SciChart.Charting.Visuals.SciChartSurfaceBase~Rendered_EV.html">SciChartSurface.Rendered</a> event.</li><li>We've compared the refresh rate of the three renderer plugins: the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>, the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighQualityRasterizer.HighQualityRenderSurface.html">HighQualityRenderSurface</a> and the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>,.</li><li>The final column (D3D vs HS) is the speed increase of <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>,&nbsp;vs. the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>, e.g. 2.5 means DirectX was 2.5x faster than software.</li><li><strong>Higher Numbers are better!</strong></li></ul>
<!-- /wp:list -->

<!-- wp:heading {"level":4} -->
<h4>In Table Form</h4>
<!-- /wp:heading -->

<!-- wp:image {"align":"none","id":12121} -->
<figure class="wp-block-image alignnone"><a href="https://www.scichart.com/wp-content/uploads/2014/12/scichart-wpf-directx-vs-software-performance.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2014/12/scichart-wpf-directx-vs-software-performance.png" alt="SciChart DirectX vs. Software Performance Comparison" class="wp-image-12121"/></a><figcaption>SciChart v4 DirectX vs HighSpeed (software) vs High Quality (software) performance comparison showing FPS (Refresh Rate). High numbers are better!</figcaption></figure>
<!-- /wp:image -->

<!-- wp:html -->
<div style="clear: both;">&nbsp;</div>
<!-- /wp:html -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span>&nbsp;Update: SciChart WPF v5.1 Further Improvements</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In SciChart WPF v5.1 we have released a number of performance enhancements including the ExtremeResamplers - a set of C++ resampling algorithms and the ExtremeDrawingManager - an improved, streamlined set of classes for coordinate transformation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>These improve drawing in some of the most demanding of cases. We have written an article about what has changed and <a href="https://www.scichart.com/performance-improvements-scichart-wpf-v5-1/">how to enable the enhancements in the latest version of SciChart</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Test results for SciChart WPF v5.1 with all optimisations enabled are included below. For the most demanding test cases (1000 series x 1000 points, and FIFO 10M points) we see 4x performance improvements over previous iterations of SciChart WPF.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":16039,"linkDestination":"custom"} -->
<figure class="wp-block-image"><a href="https://www.scichart.com/wp-content/uploads/2018/02/SciChart-WPF-Chart-5-1-Performance-Tests-Highlighted.png" rel="prettyphoto"><img src="https://www.scichart.com/wp-content/uploads/2018/02/SciChart-WPF-Chart-5-1-Performance-Tests-Highlighted.png" alt="" class="wp-image-16039"/></a></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4>In Chart Form</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>No WPF Charting Performance Test&nbsp;could be complete without some results in charting form! So, we've included the above results as a set of bar charts :)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>All results show FPS (Frames per second). Higher numbers are better!</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<div style="clear: both;"><figure><a href="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-NxM.png" rel="prettyphoto"><img class="alignnone wp-image-16045 size-full" src="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-NxM.png" alt="" width="1135" height="757"></a></figure></div>
<!-- /wp:html -->

<!-- wp:html -->
<div style="clear: both;"><figure><a href="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-Scatter.png" rel="prettyphoto"><img class="alignnone wp-image-16046 size-full" src="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-Scatter.png" alt="" width="1135" height="757"></a></figure></div>
<!-- /wp:html -->

<!-- wp:html -->
<div style="clear: both;"><figure><a href="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-FIFO.png" rel="prettyphoto"><img class="alignnone wp-image-16044 size-full" src="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-FIFO.png" alt="" width="1135" height="756"></a></figure></div>
<!-- /wp:html -->

<!-- wp:html -->
<div style="clear: both;"><figure><a href="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-Appending.png" rel="prettyphoto"><img class="alignnone wp-image-16043 size-full" src="https://www.scichart.com/wp-content/uploads/2016/01/WPF-Chart-Performance-SciChart-Appending.png" alt="" width="1135" height="757"></a></figure></div>
<!-- /wp:html -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span> Analysis of Test Results</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":4} -->
<h4>Conclusion 1: DirectX is up to 30x Faster than Software (HS)</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In over 10 test cases, <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>&nbsp;performance was between 10x and 30x faster than the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>. That's better than an order of magnitude speed improvement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>DirectX performance excelled where there were high numbers of points, e.g. Scatter charts with 10,000 - 1,000,000 points, in the 500 series x 500 points tests and when scrolling or appending millions of points on a line chart.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>At lower point counts the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>&nbsp;matched performance of the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>&nbsp;and is very capable for many WPF charting applications.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Conclusion 2: Median DirectX Performance is&nbsp;4.14x Faster than Software</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The Median speed for the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>&nbsp;was 14.29 FPS, whereas Median speed for the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>&nbsp;was 59.13 FPS. This places the DirectX renderer plugin&nbsp;at approximately 4x faster than the software renderer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The tests where DirectX particularly excelled vs. software where those where many pixels were drawn to the screen, e.g. line appending with high levels of noisyness, or many scatter-points, or large stroke-thickness of lines.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Conclusion 3: DirectX Quality Exceeds that of the HS Software Renderer</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>&nbsp;Quality matches that of the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighQualityRasterizer.HighQualityRenderSurface.html">HighQualityRenderSurface</a>, and exceeds that of the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing~SciChart.Drawing.HighSpeedRasterizer.HighSpeedRenderSurface.html">HighSpeedRenderSurface</a>. In comparison to High Quality, the median performance of DirectX was almost 6x faster,&nbsp;yet providing similar floating-point antialiased line quality to this render surface.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Conclusion 4: With DirectX enabled, only 4 tests were below 30FPS</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The limit for an animation to appear smooth is about 30FPS (frames per second).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>36/40 test results were smooth (above 30FPS) for DirectX, compared to 7/40 for the software renderers.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The cases where DirectX Frame-rates dropped below 30 FPS tended to be extreme cases, e.g. 1000 series x 1000 points, 1,000,000 point scatter charts.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span>&nbsp;Enabling DirectX in your Application</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>To enable DirectX in your application, please use the following code. &nbsp;The trial version allows the <a href="https://www.scichart.com/documentation/v5.x/webframe.html#SciChart.Drawing.DirectX~SciChart.Drawing.DirectX.Context.D3D11.Direct3D11RenderSurface.html">Direct3D11RenderSurface</a>&nbsp;but by default, it is not enabled. It is enabled in our demos and examples. Additional optimisations can be enabled via attached properties. To learn more about the optimisations included in SciChart WPF v5.1 see <a href="https://www.scichart.com/performance-improvements-scichart-wpf-v5-1/">Performance Improvements in SciChart WPF v5.1</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="line-numbers code-toolbar language-C#">   
<!-- where xmlns:s="http://schemas.abtsoftware.co.uk/scichart"-->
<!-- and xmlns:s3d="http://schemas.abtsoftware.co.uk/scichart3d"-->
<s:SciChartSurface s3d:DirectXHelper.TryApplyDirectXRenderer="True"
                      s:PerformanceHelper.EnableExtremeResamplers="True"
                      s:PerformanceHelper.EnableExtremeDrawingManager="True">
...
<s:SciChartSurface>
</pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p><em>*Please note: the DirectX Renderer is currently included as part of SciChart WPF&nbsp;2D Enterprise and SciChart SDK Product Tiers only. It is not enabled by default, but is permitted in the trial version.&nbsp;</em></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2><span style="color: #078e26;">//</span> Download the Test Suite</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Download the <a href="https://github.com/ABTSoftware/SciChart.WPF.Examples/tree/master/v5.x/Sandbox/WPFChartPerformanceBenchmark">WPF Chart Performance Test Suite</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This Application&nbsp;is based on the WPF Chart Performance Comparison application published by <a href="http://blog.scottlogic.com/2012/04/24/wpf-charting-performance-comparisons-the-battle-continues.html" rel="external nofollow">Scott Logic in 2012</a>&nbsp;and has been adapted to test SciChart's WPF Chart performance in a number of scenarios. We are even able to test SciChart performance vs. competitors. Feel free to adjust the application for your needs!</p>
<!-- /wp:paragraph -->