here. - Arction

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