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:
Initial loading performance
Moderator: Queue Moderators
- ArctionPasi
- Posts: 1367
- Joined: Tue Mar 26, 2013 10:57 pm
- Location: Finland
- Contact:
Re: Initial loading performance
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.
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.
LightningChart Support Team, PT
Re: Initial loading performance
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));
}
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));
}
- ArctionPasi
- Posts: 1367
- Joined: Tue Mar 26, 2013 10:57 pm
- Location: Finland
- Contact:
Re: Initial loading performance
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.
Can you reduce the steps to 10 and let me know how it behaves.
LightningChart Support Team, PT
Re: Initial loading performance
Here is a summary of my timing results using the modification to your example for various # of palette steps.
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]).
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
- ArctionPasi
- Posts: 1367
- Joined: Tue Mar 26, 2013 10:57 pm
- Location: Finland
- Contact:
Re: Initial loading performance
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...
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