16
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.

Test setup - Arction Ltd · - 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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Test setup - Arction Ltd · - 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

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.

Page 2: Test setup - Arction Ltd · - 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

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.

Page 3: Test setup - Arction Ltd · - 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

WPF CHARTS PERFORMANCE BENCHMARK Page 3 / 16

February 18, 2013

Test type Series

count

Points/series Competitor A Competitor B Competitor C LightningChart

Ultimate

LightningChart

Times faster

(A/B/C)Line series

1 1 000 1760 1880 80 (B 3 586/626/26

1 10 000 5080 3960 120 (B 3 1693/1320/40

1 100 000 640 (A >60000 840 (B 6 106/∞/140

1 1 000 000 480 (A >60000 9400

(B 21 22/∞/447

1 10 000 000 3960(A >60000 >60000 182 21/∞/∞

1 100 000 000 >60000 >60000 >60000 1813 ∞/∞/∞

4 1 000 1760 1960 120 (B 3 586/653/40

4 10 000 5320 4480 400(B 4 1330/1120/100

4 100 000 840 (A >60000 3360 (B 8 105/∞/420

4 1 000 000 1600 (A >60000 >60000 37 43/∞/∞

4 10 000 000 15680 (A >60000 >60000 315 49/∞/∞

4 100 000 000 >60000 >60000 >60000 4713 ∞/∞/∞

40 1 000 2040 2240 960 (B 8 255/280/120

40 10 000 6320 7120 4360 (B 16 395/445/272

40 100 000 2200 (A >60000 >60000 45 48/∞/∞

40 1 000 000 15360 (A >60000 >60000 329 46/∞/∞

40 10 000 000 >60000 >60000 >60000 3472 ∞/∞/∞

A) Not a polyline, but some kind of high-low area trick.

B) Not a continuous polyline

Area series

1 1 000 760 2640 1080 3 253/880/360

1 10 000 2880 19920 16280 4 720/4980/4070

1 100 000 360 >60000 37360 10 36/∞/37360

1 1 000 000 480 >60000 >60000 58 8/∞/∞

1 10 000 000 4040 >60000 >60000 503 8/∞/∞

4 1 000 800 2560 920 5 160/512/184

4 10 000 2920 20720 16600 9 324/2302/1844

4 100 000 520 >60000 47000 23 22/∞/2043

4 1 000 000 1560 >60000 >60000 148 10/∞/∞

4 10 000 000 15680 >60000 >60000 1478 10/∞/∞

40 1 000 880 3160 2680 36 24/87/74

40 10 000 3520 23680 27920 86 40/275/324

40 100 000 2040 >60000 >60000 221 9/∞/∞

40 1 000 000 15400 >60000 >60000 1384 11/∞/∞

Rendering delay, ms

Rendering delay, ms

Page 4: Test setup - Arction Ltd · - 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

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

Page 5: Test setup - Arction Ltd · - 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

WPF CHARTS PERFORMANCE BENCHMARK Page 5 / 16

February 18, 2013

Test type Series

count

New points

/sec/series

Competitor A Competitor B Competitor C LightningChart Ultimate,

Average FPS

Line series

Sine 1 100 OK OK Not possible 100,60

1 1 000 OK Not possible Not possible 99,60

1 10 000 Not possible Not possible Not possible 100,60

1 100 000 Not possible Not possible Not possible 100,40

1 1 000 000 Not possible Not possible Not possible 96,80

1 10 000 000 Not possible Not possible Not possible 27,40

1 20 000 000 Not possible Not possible Not possible Not possible

4 1 000 Not possible Not possible Not possible 99,00

4 10 000 Not possible Not possible Not possible 98,90

4 100 000 Not possible Not possible Not possible 99,30

4 1 000 000 Not possible Not possible Not possible 93,30

4 10 000 000 Not possible Not possible Not possible Not possible

40 1 000 Not possible Not possible Not possible 69,10

40 10 000 Not possible Not possible Not possible 70,20

40 100 000 Not possible Not possible Not possible 43,40

40 1 000 000 Not possible Not possible Not possible Not possible

Spikes

1 100 OK OK Not possible 100,70

1 1 000 OK Not possible Not possible 99,60

1 10 000 Not possible Not possible Not possible 100,70

1 100 000 Not possible Not possible Not possible 100,40

1 1 000 000 Not possible Not possible Not possible 98,70

1 10 000 000 Not possible Not possible Not possible 77,10

1 20 000 000 Not possible Not possible Not possible Not possible

4 1 000 Not possible Not possible Not possible 99,70

4 10 000 Not possible Not possible Not possible 100,30

4 100 000 Not possible Not possible Not possible 98,70

4 1 000 000 Not possible Not possible Not possible 95,20

4 10 000 000 Not possible Not possible Not possible Not possible

40 1 000 Not possible Not possible Not possible 89,90

40 10 000 Not possible Not possible Not possible 92,60

40 100 000 Not possible Not possible Not possible 88,90

40 1 000 000 Not possible Not possible Not possible Not possible

Page 6: Test setup - Arction Ltd · - 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

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 100 OK OK Not possible 101,80

1 1 000 OK Not possible Not possible 100,10

1 10 000 Not possible Not possible Not possible 101,80

1 100 000 Not possible Not possible Not possible 49,30

1 1 000 000 Not possible Not possible Not possible 80,60

1 10 000 000 Not possible Not possible Not possible Not possible

4 1 000 Not possible Not possible Not possible 100,30

4 10 000 Not possible Not possible Not possible 61,20

4 100 000 Not possible Not possible Not possible 28,50

4 1 000 000 Not possible Not possible Not possible 4,30

4 10 000 000 Not possible Not possible Not possible Not possible

40 1 000 Not possible Not possible Not possible 16,80

40 10 000 Not possible Not possible Not possible 6,30

40 100 000 Not possible Not possible Not possible 4,20

40 1 000 000 Not possible Not possible Not possible Not possible

Spikes 1 100 OK OK Not possible 102,10

1 1 000 OK Not possible Not possible 102,10

1 10 000 Not possible Not possible Not possible 101,70

1 100 000 Not possible Not possible Not possible 49,60

1 1 000 000 Not possible Not possible Not possible 64,90

1 10 000 000 Not possible Not possible Not possible Not possible

4 1 000 Not possible Not possible Not possible 100,50

4 10 000 Not possible Not possible Not possible 59,70

4 100 000 Not possible Not possible Not possible 27,60

4 1 000 000 Not possible Not possible Not possible 45,20

4 10 000 000 Not possible Not possible Not possible Not possible

40 1 000 Not possible Not possible Not possible 18,20

40 10 000 Not possible Not possible Not possible 7,50

40 100 000 Not possible Not possible Not possible 5,60

40 1 000 000 Not possible Not possible Not possible Not possible

Page 7: Test setup - Arction Ltd · - 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

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

Page 8: Test setup - Arction Ltd · - 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

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 high-

low 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

Page 9: Test setup - Arction Ltd · - 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

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.

Page 10: Test setup - Arction Ltd · - 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

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 LightningChart Ultimate: USD 2,470.00, comes with both WPF and WinForms chart and

other controls

o Competitor A: USD 2,395.00, comes with a lot of other components

o Competitor B: USD 1,000.00

o 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.

Page 11: Test setup - Arction Ltd · - 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

WPF CHARTS PERFORMANCE BENCHMARK Page 11 / 16

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 12: Test setup - Arction Ltd · - 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

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.

Page 13: Test setup - Arction Ltd · - 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

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

Page 14: Test setup - Arction Ltd · - 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

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.

Page 15: Test setup - Arction Ltd · - 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

WPF CHARTS PERFORMANCE BENCHMARK Page 15 / 16

February 18, 2013

LightningChart Ultimate, correct polyline rendering, with random data + spikes every second.

Page 16: Test setup - Arction Ltd · - 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

WPF CHARTS PERFORMANCE BENCHMARK Page 16 / 16

February 18, 2013

Competitor C polyline rendering problems. Pixels missing in line segment joints.