Initial loading performance

A forum dedicated to WPF version of LightningChart Ultimate.

Moderator: Queue Moderators

Post Reply
ShawnCG
Posts: 57
Joined: Tue Oct 15, 2013 8:31 pm

Initial loading performance

Post by ShawnCG » Thu Jun 19, 2014 4:53 pm

Dear Support:

In trying out the new version of the Lightning Chart Ultimate libraries (6.0.6), we see a big hit in the initial loading for 3D charts. Here are example load times using the previous version, 6.0.5.:
2D Chart load time: 0.724 s
3D Chart load time: 3.834 s

With the 6.0.6 version, the initial load times are:
2D Chart load time: 1.081 s
3D Chart load time: 9.810 s

After the initial load, new plots are quite fast to render, even a little faster than before, (0.023 s compared to 0.036s), but the initial hit in the first render is pretty harsh. Is there anyway to move this initialization to the startup of our application so that there isn't such a noticeable lag between a chart being requested and it actually displaying for the first time?

Thanks!
-Shawn

PS -- Here is a screenshot of our example plots to test this loading time:
LCloadingExample2Dand3D.jpg
LCloadingExample2Dand3D.jpg (28.52 KiB) Viewed 13947 times

User avatar
ArctionPasi
Posts: 1367
Joined: Tue Mar 26, 2013 10:57 pm
Location: Finland
Contact:

Re: Initial loading performance

Post by ArctionPasi » Thu Jun 19, 2014 8:35 pm

Hi Shawn,

thanks for presenting your concerns. I'm getting opposite results. I made Winforms and WPF comparison for 3D surface chart initialization, using 6.0.5 and 6.0.6 assemblies.

Download the project archive here:http://www.arction.com/download/surface ... nforms.zip

In the projects, press the button in window to initialize chart.

Winforms 6.0.5: loading + initialization + rendering 4291 ms

Winforms 6.0.6: loading + initialization + rendering 1449 ms

WPF 6.0.5: loading + initialization + rendering 4559 ms

WPF 6.0.6: loading + initialization + rendering 1567 ms

These results are with my old Vista laptop (but with SSD hard drive).

Can you check you have left chart.ChartRenderOptions.EffectCaching = true (as it is by default).

6.0.6 came with HLSL optimizations that really should improve the initialization of palette-colored series, and also improve the rendering performance of them. The optimization is new and we can't exclude possibility for an error.

Please let me know what you are doing differently that could explain the opposite results. :roll:
LightningChart Support Team, PT

ShawnCG
Posts: 57
Joined: Tue Oct 15, 2013 8:31 pm

Re: Initial loading performance

Post by ShawnCG » Thu Jun 19, 2014 8:56 pm

Hi Pasi,

In our test example, we have 11 steps in the grid series contour palette. I think your example has only four steps. Can you try your example adding the following lines before the gridSeries.InvalidateData() call? When I run your example with 11 palette steps, I get about 3.2 seconds to load the chart for the 6.0.5 libraries and about 6.3 seconds for the 6.0.6 libraries.

//Code to add palette with 11 levels
gridSeries.ContourPalette.Steps.Clear();
int numPaletteLevels = 11;
for (int i = 0; i < numPaletteLevels; ++i)
{
gridSeries.ContourPalette.Steps.Add( new PaletteStep(gridSeries.ContourPalette, Color.FromScRgb(1.0f, 1.0f*i/11.0f, 0.0f, 0.0f), 100*i/11.0));
}

User avatar
ArctionPasi
Posts: 1367
Joined: Tue Mar 26, 2013 10:57 pm
Location: Finland
Contact:

Re: Initial loading performance

Post by ArctionPasi » Thu Jun 19, 2014 9:08 pm

The precompiled shaders have allocation for 10 steps..., and if there's more steps, they are compiled the old way on the fly (but initialization delay should be pretty much the same than in 6.0.5).

Can you reduce the steps to 10 and let me know how it behaves.
LightningChart Support Team, PT

ShawnCG
Posts: 57
Joined: Tue Oct 15, 2013 8:31 pm

Re: Initial loading performance

Post by ShawnCG » Thu Jun 19, 2014 9:33 pm

Here is a summary of my timing results using the modification to your example for various # of palette steps.

Code: Select all

#Steps     6.0.5 render time (ms)       6.0.6 render time (ms)
--------     --------------------------       -------------------------
4              2180                                 667 
5              2330                                 667 
6              2450                                 670 
7              2600                                 665 
8              2800                                 662 
9              2940                                 660 
10            3100                                 5600
11            3270                                 6270
If it's possible to provide a version with 11 steps in the pre-compiled shader code, that would be great for us because almost all of our charts have 11 levels by default (e.g., [0, 0.1, ..., 0.9, 1.0]). :D

User avatar
ArctionPasi
Posts: 1367
Joined: Tue Mar 26, 2013 10:57 pm
Location: Finland
Contact:

Re: Initial loading performance

Post by ArctionPasi » Thu Jun 19, 2014 9:58 pm

Thanks for your research. Majority of the customer apps we have seen have used way less than 10 steps.

OK, I believe we can increase the step count to 15 or 20, but we'll check the possible performance hit first.

Expect a new assembly pack in two weeks...
LightningChart Support Team, PT

Post Reply