Nov 28 |
Posted by Andrew on 28 November 2019 06:58 PM
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Following on from last weeks announcement on the BETA of version 6 of our WPF Charts SDK, in this article we talk about the new cutting-edge overhaul to our High Performance Real-time WPF Chart component, which we’re calling ‘SciChart WPF: Xccelerated Edition’. SciChart SDK v6 brings you performance increases of up to 100x (10,000%) across WPF Chart types, allowing you to create the most demanding scientific, financial and big-data enterprise applications, all without changing or sacrificing our powerful & flexible XAML-friendly, MVVM ready WPF chart API. Why did we improve performance?Our charts already provided the cutting edge in data visualisation, providing high performance for real-time and big-data projects, and are used by market leaders in scientific & financial sectors to deliver unbelievable results. However, our top feature request by our customers was to push the boundaries and limitations of WPF Chart performance even further. Our customers have demanding projects, innovating globally, with a need to visualise more and more data every year. Our users found that as the number of data-points they wanted to visualise increased, or when including intensive graphics such as Band charts, Mountain, or Stacked Column charts in their applications, or complex multi-chart dashboards, better performance was needed to handle hundreds of millions, or even billions of points, especially in real-time. ![]() SciChart WPF was already very fast, exhibiting outstanding performance due to our DirectX rendering pipeline, and optimised data-processing algorithms. However, our clients in sectors such as Aerospace, Engineering, Medical Device manufacturers or even Formula 1 keep pushing the boundary of what is possible by creating dashboards with hundreds, even thousands of series, like this one below (see case studies). ![]() Knowing what our top clients in Formula 1, Medical Device, Engineering & Aerospace sectors needed to achieve in their project goals, we set about to implement a more optimal solution for complex, real-world scenarios. Having invested into R&D and recruiting experts around the world, we have now investigated performance throughout our software and have come up with a revolutionary plan to dramatically improve performance across ALL chart types. Our work has been completed and is almost ready for release! Our SolutionWe’ve built the worlds most flexible, and fully featured WPF charting component, rated by users as the best WPF chart, but with this popular feature request of ‘faster performance’ we’ve focused on improving our charting speed even more, bringing cutting edge GPU-accelerated technology to sectors such Finance, Scientific, Medical, Aerospace, F1 & more.
To achieve this, we have built a completely new proprietary cross-platform rendering engine, code-named ‘Visual Xccelerator SciChart is now only limited by your computer’s memory bandwidth and GPU capabilities. We’ve pushed the boundaries of graphics and data visualisation and we’ve done it in such a way that these improvements won’t affect our existing XAML-based, MVVM-friendly API and should be for many customers, a drop-in replacement to your existing applications. Furthermore, to future proof ourselves, our Visual Xccelerator Performance ResultsThe resulting performance enhancements really are impossible. SciChart WPF Xccelerated Edition is up to 10,240% faster than SciChart v5.x, on average ~5,000% faster, surpassing all known WPF Chart competitors. You can buy with confidence knowing that with SciChart, you’ll have the world’s fastest WPF Chart at your fingertips, and plot real-time data at warp-speed with our new Visual Xccelerator ![]() These performance improvements really are application wide, with the new engine enabled (see below), you’ll see improvements straightaway to line charts, scatter, band, mountain, area, candlestick, column, as well as real-time big-data charts. The CPU usage is significantly lower & memory usage has been optimised as well. With SciChart WPF Xccelerated Edition, more of your computing resources will be free to perform other intensive tasks, and the UI of your applications will be more responsive under even the most demanding conditions.
The Performance Test SuiteTo test our charts performance internally and measure performance gain as we developed this update, we’ve written a complete test-suite to cover all kinds of WPF Chart performance cases. Charting performance is complex and must be measured in a variety of ways to see an overall improvement. Line series with millions (now billions) of points is one such test, but what about unsorted freeform XY data, scatter charts, real-time updates? What about band charts, or mountain charts, or thousands of series, or candlestick/OHLC charts? What about chart window resizing tests? ![]() The SciChart WPF performance test-suite (above) has chosen test-cases which pushed our last version (SciChart WPF v5) to the limit, then shows the massive performance improvements in SciChart WPF v6. It includes a number of complex scenarios, such as:
We’ve taken the time to develop this comprehensive performance test-suite in-house so that we can measure the improvement across a wide variety of demanding conditions, not just optimise one or two cases and declare ourselves ‘the fastest’. We have confidence that the results we present below are both accurate and a truthful representation of our WPF chart performance, as we’ve gone to extreme lengths to measure, test and optimise rendering speed. We’ve decided not to publish this test suite, as it could be used by competitors to measure and tune their own chart performance, however, if you or your team would like a tech demo, then please contact us and we would be happy to arrange one. Test Results in Table FormatThe test results are included below. Test Setup: Intel i7 4.6GHz, 32 GB DDR4 RAM, nVidia GTX 1070 GPU. Basic Drawing TestsBelow are test results for basic drawing of several different chart types. We’ve gone further than previous iterations of SciChart by improving everything. Not just faster line series or scatter but also Band series, Mountain, Candlestick, Stacked Column … all chart types have gotten the same treatment to dramatically improve performance.
![]() In summary:
Realtime Drawing TestsStatic chart types are tested above, but what about real-time scrolling or streaming charts? We’ve made multiple algorithmic changes throughout SciChart to how the data is being processed for rendering on screen and to squeeze every last cycle out of the CPU. The results are staggering. SciChart WPF v6 is up to 6,157% faster for drawing realtime charts, and can now render up to 1-billion points at 60 FPS.
The FIFO Tests above show a static number of points scrolling from left to right. For instance, 10 Million, 50 Million, 100 Million, 500 Million or 1 Billion data-points with up to 3,000,000 (3 Million) new data-points added and scrolled to the chart per second, all render at 60 FPS. The Append Tests start off with a starting number of points (either 3 Million or 30 Million) then append a certain amount as fast as it can to three series. The most challenging test case starts with 30 Million Points and appends 100k to 3 series at 51.84 FPS. A total of over 15 Million new Data-Points per second. ![]() Real-time performance improvements of SciChart WPF v6 are absolutely staggering. Make no mistake, these are the world’s fastest WPF Charts by a considerable margin. Edge Case Drawing TestsSciChart WPF v5 could draw line charts pretty fast, but if you added in edge-cases such as changing the colour per-point, or including gaps in series with double.NaN, or dashed lines, or digital lines, the extra processing would slow down the chart. In SciChart WPF v6, we have improved all these scenarios. Take a look at the test results below.
![]() In summary:
These really are our fastest ever WPF charts and the results are astonishing: SciChart WPF v6 is on average 5,000% faster than SciChart v5, and all scenarios perform faster than our previous WPF chart version. The World’s Fastest ChartWhat about competitors? There are other chart vendors claiming they have the world’s fastest WPF Charts, or that they have unmatched performance. Across a battery of demanding, real-time tests, SciChart not only outperforms all known competitors in terms of refresh rate, but also UI responsiveness, with lower CPU usage and Memory usage, providing you with extremely efficient big-data, real-time data-visualisation. Note that most commercial or open-source WPF Chart components really don’t come close to SciChart in terms of performance, and the test cases below are extremely demanding (line charts up to 2,000 series x 2,000 points, charts with over 100 Million real-time points, scatter charts with 10 Million points). Against almost all competitor charts, SciChart is several orders of magnitude faster. Below we’ve chosen one of our strongest competitors in terms of performance, and measured the speed of SciChart WPF v6 Xccelerated Edition vs. their charts. When compared against this WPF Chart component in almost all cases, SciChart WPF v6 outperforms ‘Competitor A’. Not only higher FPS (frames per second), but also lower CPU usage and lower memory usage in almost all cases. The number of data-points processed per second is higher with SciChart, and in our tests we can comfortably process up to 15 Million new data-points per second at 50 FPS. ![]() You can be assured if you are selecting or evaluating chart components based on performance, that with SciChart WPF v6 ‘Xccelerated Edition’, you will be getting the world’s fastest WPF Chart control in your applications. Not only that, also a component which is flexible, easy-to-use, rated as best, as well as award winning, with hopefully, a bright future in the cross-platform data-visualisation market! How will this benefit customer applications?If you already had no issue with the performance of SciChart WPF, then you may not feel you need more, but it can’t hurt! Faster WPF Charts will allow you to run your applications on lower-end hardware without harming user experience. It will also free up your CPU for other operations. Perhaps that UI could be a little bit more responsive, or you need the processing power for other tasks on your computer. If you are one of our customers building a cutting-edge application, or pushing our charts to the limit, we’ve just raised the bar to the point where our software makes impossible projects become possible. This means more data, more dashboards, more visualisation without having to worry about the CPU hitting 100% or user interface lock-ups. ![]() Try it for yourself!Don’t just take our word for it. These are our fastest ever WPF Charts by a long way, and right now, the fastest WPF chart control in the world, which will give your applications a huge performance boost. You can try it for yourself by downloading the SciChart WPF v6 from NuGet, and using this code to enable the Visual Xccelerator <!-- s:VisualXcceleratorEngine.IsEnabled enables our new super fast DirectX 9,10,11 engine FallbackType means fall back to this renderer if DirectX not supported DowngradeWithoutException=False means it will throw exception if you don't support DirectX, otherwise, silent downgrade EnableImpossibleMode enables experimental data-processing algorithms which are up to 100x faster for massive data-sets such as 1-billion points --> <s:SciChartSurface s:VisualXcceleratorEngine.IsEnabled="True" s:VisualXcceleratorEngine.FallbackType="{x:Type s:HighQualityRenderSurface}" s:VisualXcceleratorEngine.DowngradeWithoutException="False" s:VisualXcceleratorEngine.EnableImpossibleMode="True"> <!-- the rest of the SciChart API is unchanged --> </s:SciChartSurface>
The Future – Cross Platform GraphicsSince 2017 we have shared a vision of being a market leader in real-time, high-performance, cross-platform 2D/3D charts. With our new proprietary C++ rendering engine code-named Visual Xccelerator ![]() The same graphics engine which is used in our WPF 2D/3D charts is also used in SciChart iOS/Android, allowing for astonishingly fast 2D/3D charts with rich graphics on mobile. By effectively leveraging CPU and GPU, our charts now scale performance with faster graphics processors, so as more powerful graphics cards and more powerful mobile devices are released, you will see even more of a performance boost in your applications. Visual Xccelerator We’ve built the worlds most versatile charting component on Windows and mobile, and now have the Worlds Fastest Cross-platform 2D/3D charting component, fully focussed on performance, allowing you to make impossible projects possible. ![]() How to get SciChart WPF v6 ‘Xccelerated Edition’We are currently in BETA for SciChart WPF v6, and you can find out how to access the BETA here. Upon release, we will be upgrading existing customers or allowing you to upgrade/renew as follows. Existing Customers in SupportIf you are a customer of SciChart WPF 2D Professional, SciChart WPF 2D Enterprise, SciChart WPF SDK Professional or Enterprise with an active support subscription, then good news! You will get SciChart WPF v6 ‘Xccelerated Edition’ free of charge as part of your support & updates subscription when we release. There’s nothing to purchase, but you will need to get a refreshed licensing key as our licensing mechanism has changed (more instructions to follow). Head on over to our downloads page to get the latest SDK and install it, and you should be good to go. Previous Customers with Support ExpiredAhhh … that’s awkward … so you let your support expire? We’re sorry, but you won’t be able to get this edition |