WPF CHARTS PERFORMANCE BENCHMARK Page 1 / 16 February 18, 2013 Test setup In this benchmark test, LightningChartUltimate for WPF’s performance is compared to other WPF chart controls, which are marketed as high-performance charting products. Benchmark application was developed and test performed February 2013, with newest available chart versions. The chart controls participating in the test are in random order: Arction LightningChart Ultimate for WPF v.5.0.2 Visifire v. 5.0.6.0 Visiblox Ultimate v. 3.0.6.44716 Infragistics xamDataChart, v.12.2 The benchmark is divided in two parts: - Opening large data set and rendering in the graph (Data binding) o Line o Area - Real-time monitoring as a scrolling graphs o Line o Area Computer hardware and operating system The benchmarks were run with mid-performance class desktop computer, at the date of the test. System information: - Intel i5 Quad core CPU, 3.3 GHz - 8 GB RAM, - AMD Radeon HD 6750 1GB display adapter, Full HD (1920 x 1080) resolution through the test - Windows 7 64-bit OS. Benchmark application: - WPF application, target .NET framework 4.0 Client Profile, compiled to Any CPU configuration, runs in 64-bit mode in this test machine. WPF CHARTS PERFORMANCE BENCHMARK Page 2 / 16 February 18, 2013 Benchmark 1 – Rendering large data set A data array is generated and passed to each chart and rendering delay is measured programmatically from event handler that should notify when rendering is done. Some chart components use non-synchronous updating and raise these events much before it is actually rendered, and with those, a video camera has been used (Canon Firewire DV camera, PAL, 25 frames / sec). The video is then analyzed frame-by-frame and delay is calculated (1000 ms * frame count / 25). Synchronous charts are also checked with video camera, to verify it that it really is synchronous. All charts are set to equal size, and simplest possible appearance. The fastest rendering series types from each chart component are used, component manufacturers’ online examples are made use of and technical support have been contacted to make it run in optimal performance and to provide equal odds for every manufacturer. The test is performed with various point counts. The data is random numbers progressing in X axis. Test will be aborted if the chart is not able to render specified data amount in 1 minute. In line test, the best and only actually correct output is a polyline, going from data point to another. Some charts failed to do this, and rendering output was totally something else than a polyline. WPF CHARTS PERFORMANCE BENCHMARK Page 3 / 16 February 18, 2013 Test type Series Points/series Competitor A count Competitor B Competitor C LightningChart LightningChart Ultimate Times faster (A/B/C) Line series 1 1 1 000 10 000 100 000 1 1 1 1 10 000 000 100 000 000 4 4 4 4 4 4 1 000 10 000 100 000 1 000 000 10 000 000 100 000 000 40 40 40 40 40 1 000 10 000 100 000 1 000 000 1 000 000 10 000 000 Area series 1 1 1 1 1 4 4 4 4 4 40 40 40 40 1 000 10 000 100 000 1 000 000 10 000 000 1 000 10 000 100 000 1 000 000 1760 5080 640 (A Rendering delay, ms 1880 80 (B (B 3960 120 (B >60000 840 (A 480 3960(A >60000 >60000 >60000 >60000 1760 5320 1960 4480 >60000 >60000 >60000 >60000 840 (A 1600 (A 15680 (A >60000 3 586/626/26 3 1693/1320/40 9400 >60000 >60000 6 21 182 1813 106/∞/140 22/∞/447 21/∞/∞ ∞/∞/∞ 120 (B 400(B 3360 (B >60000 >60000 >60000 3 4 8 37 315 4713 586/653/40 1330/1120/100 105/∞/420 43/∞/∞ 49/∞/∞ ∞/∞/∞ 8 16 45 329 3472 255/280/120 395/445/272 48/∞/∞ 46/∞/∞ ∞/∞/∞ (B 2240 960 (B 7120 4360 (B >60000 >60000 2200 (A (A >60000 >60000 15360 >60000 >60000 >60000 A) Not a polyline, but some kind of high-low area trick. B) Not a continuous polyline Rendering delay, ms 760 2640 1080 2880 19920 16280 360 >60000 37360 480 >60000 >60000 4040 >60000 >60000 2040 6320 3 4 10 58 503 253/880/360 720/4980/4070 36/∞/37360 8/∞/∞ 8/∞/∞ 10 000 000 800 2920 520 1560 15680 2560 20720 >60000 >60000 >60000 920 16600 47000 >60000 >60000 5 9 23 148 1478 160/512/184 324/2302/1844 22/∞/2043 10/∞/∞ 10/∞/∞ 1 000 10 000 100 000 1 000 000 880 3520 2040 15400 3160 23680 >60000 >60000 2680 27920 >60000 >60000 36 86 221 1384 24/87/74 40/275/324 9/∞/∞ 11/∞/∞ WPF CHARTS PERFORMANCE BENCHMARK Page 4 / 16 February 18, 2013 Benchmark 2 – Real-time monitoring Appending of data points in a scrolling view. X Axis represents time, length is 10 seconds. Data points have fixed X step. When chart is full (X axis maximum is reached), the scrolling starts. The chart appearance is defined as fast as possible (simplest possible). The test continues until 1 minute is reached, or chart does not updated at least once per second. Feeding data with specified series count / sec, at point count /sec for each series, as waveform (progressing time data). Waveform types: - Sine - Spike data, flat 0 line, a peak value generated every second. This is used to check that the chart does not remove any details of the data (down-sample it by just observing a fraction of values). Series types in the test are: Line and Area. Refresh rate of the chart is observed, with the charts that have a synchronous updating, or accurate event that reports when the chart has been rendered on the screen, a FPS calculator is used. With non-synchronous charts, a visual interpretation is made WPF CHARTS PERFORMANCE BENCHMARK Page 5 / 16 February 18, 2013 Test type Series New points count /sec/series Competitor A Competitor B Competitor C LightningChart Ultimate, Average FPS Line series Sine 1 1 1 1 1 1 1 100 1 000 10 000 100 000 1 000 000 10 000 000 20 000 000 OK OK Not possible Not possible Not possible Not possible Not possible OK Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 100,60 99,60 100,60 100,40 96,80 27,40 Not possible 4 4 4 4 4 1 000 10 000 100 000 1 000 000 10 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 99,00 98,90 99,30 93,30 Not possible 40 40 40 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 69,10 70,20 43,40 40 1 000 10 000 100 000 1 000 000 1 1 1 1 1 1 1 100 1 000 10 000 100 000 1 000 000 10 000 000 20 000 000 OK OK Not possible Not possible Not possible Not possible Not possible OK Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 4 4 4 4 4 1 000 10 000 100 000 1 000 000 10 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 40 40 40 1 000 10 000 100 000 1 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Spikes 40 100,70 99,60 100,70 100,40 98,70 77,10 Not possible 99,70 100,30 98,70 95,20 Not possible 89,90 92,60 88,90 Not possible WPF CHARTS PERFORMANCE BENCHMARK Page 6 / 16 February 18, 2013 Test type Series count New points /sec/series Competitor A Competitor B Competitor C LightningChart Ultimate, Average FPS Area series Sine 1 1 1 1 1 1 100 1 000 10 000 100 000 1 000 000 10 000 000 OK OK Not possible Not possible Not possible Not possible OK Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 4 4 4 4 4 1 000 10 000 100 000 1 000 000 10 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 40 1 000 10 000 100 000 1 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 1 1 1 1 1 1 100 1 000 10 000 100 000 1 000 000 10 000 000 OK OK Not possible Not possible Not possible Not possible OK Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 4 4 4 4 4 1 000 10 000 100 000 1 000 000 10 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 40 40 40 1 000 10 000 100 000 1 000 000 Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible Not possible 40 40 40 Spikes 40 101,80 100,10 101,80 49,30 80,60 Not possible 100,30 61,20 28,50 4,30 Not possible 16,80 6,30 4,20 Not possible 102,10 102,10 101,70 49,60 64,90 Not possible 100,50 59,70 27,60 45,20 Not possible 18,20 7,50 5,60 Not possible WPF CHARTS PERFORMANCE BENCHMARK Page 7 / 16 February 18, 2013 Conclusion In the world of WPF, it is a common delusion to assume that WPF rendering routines would make graphics render fast. The benchmark results here indicate, that they are not practically any faster than GDI+ rendered WinForms chart controls. Rendering of 100,000 in a WPF chart can take longer than 1,000,000 points in a GDI+ chart (refer to Benchmark of LightningChart Pro/Ultimate for WinForms vs. other WinForms charts, http://www.arction.com/benchmark, in 2010). Many WPF chart manufacturers that advertise their charts as a “high-performance” products, can be set under a big question mark based on their real performance. Some manufacturers also try to trick with techniques that don’t produce correct rendering output, such as down-sampling and high-low fill rendering. Even if WPF rendering is distantly based on DirectX, it falls way behind of real DirectX rendering in performance aspects. LightningChart Ultimate for WPF uses low-level DirectX rendering, not WPF’s graphics routines. And it really stands out of the competitors, let it be real-time monitoring or rendering a large data set. Eventually the difference is like setting a dragster with bunch of bicycles into quarter-mile drag race. Rendering large data set, Line series rendering of 10,000 data points LightningChart is 40…1693 times faster than competitors, while Competitor C renders it wrong. Shorter bar is better WPF CHARTS PERFORMANCE BENCHMARK Page 8 / 16 February 18, 2013 Rendering large data set, line series rendering of 1,000,000 data points LightningChart is 22…447 times faster than competitors, while competitor A cheats with highlow fill rendering, and competitor B is unable to render it, and competitor C renders it wrong. Shorter bar is better Rendering large data set, Area series rendering of 10,000 data points LightningChart is 720…4980 times faster than competitors. Shorter bar is better WPF CHARTS PERFORMANCE BENCHMARK Page 9 / 16 February 18, 2013 Real-time monitoring, Line series, appending of capacity of new data points / sec, 1 series LightningChart Ultimate: 10,000,000 Competitor A: 1,000 Competitor B: 100 Competitor C: LightningChart is 1000…10000 times faster, while Competitor C couldn’t provide any result. Longer bar is better Real-time monitoring, Line series, appending of capacity of new data points / sec, 40 series LightningChart Ultimate: 100,000 Competitor A: Competitor B: Competitor C: LightningChart is the only one that could provide result with 40 series, and also with that, provides 1000 times better capacity than Competor B with only 1 series. WPF CHARTS PERFORMANCE BENCHMARK Page 10 / 16 February 18, 2013 Power-to-cost ratio This is completely beyond of the test, but it’s interesting to compare power-to-cost ratio, in the similar way than with sports cars. The list prices with priority support included: o o o o LightningChart Ultimate: USD 2,470.00, comes with both WPF and WinForms chart and other controls Competitor A: USD 2,395.00, comes with a lot of other components Competitor B: USD 1,000.00 Competitor C: USD 499.00 Max point count in line series, that gets rendered before 2 seconds. LightningChart: 100,000,000 points in 1813 ms Competitor A: 1,000,000 points in 480 ms Competitor B: 1,000 points in 1880 ms Competitor C: 100,000 points in 840 ms Longer bar is better LightningChart is slightly the most expensive, but provides unmatched power-to-cost ratio. WPF CHARTS PERFORMANCE BENCHMARK February 18, 2013 Some screenshots during the testing, a couple of problems noted too LightningChart, Real-time 4 series, sine waveform, 100,000 new points /sec/series. Page 11 / 16 WPF CHARTS PERFORMANCE BENCHMARK Page 12 / 16 February 18, 2013 Competitor A, rendering large data set, random waveform, areas, 4 series, 10,000 data points/series LightningChart, Real-time 40 series, sine waveform, 100,000 new points/sec / series. WPF CHARTS PERFORMANCE BENCHMARK Page 13 / 16 February 18, 2013 LightningChart, Real-time 4 series, spike waveform, 1,000,000 new points/sec / series. LightningChart, Rendering large data set, random waveform, 40 series, 1,000,000 data points/series WPF CHARTS PERFORMANCE BENCHMARK Page 14 / 16 February 18, 2013 Competitor A, rendering large dataset , 4 series, 1000 points /series. Rendering OK. Competitor A, rendering large dataset , 4 series, 10,000 points /series. Not a polyline, but High-low fill trick instead. WPF CHARTS PERFORMANCE BENCHMARK February 18, 2013 LightningChart Ultimate, correct polyline rendering, with random data + spikes every second. Page 15 / 16 WPF CHARTS PERFORMANCE BENCHMARK February 18, 2013 Competitor C polyline rendering problems. Pixels missing in line segment joints. Page 16 / 16
© Copyright 2026 Paperzz