Performance evaluation of the new version of FastReport .Net 2017.1.0

With the release of the new version FastReport.Net 2017.1.0 we got a significant acceleration of report building, exporting, and reduced memory consumption. These changes have prompted me to make a comparison test of the "old" and the "new" versions.

Testing technique

For testing we will build a report and make its export to multiple formats: PDF, XLSX, HTML export with layer method (because it is used in web reports).

  At the same time, exports time will be measured  as well as the size of the file. First let’s test the version 2016.4.0, then - the new 2017.1.0.

Let’s take the most popular template Master-Detail Report. XML data base.

I've done simple enough application:

 

Here a  Multi page is a usual multipage report, and Unlimited page  is a report with enabled property UnlimitedHeight. This wat we use two almost identical report, but one of them will have a unlimited page. Here I must point out that the size of this report is limited to 100 MB. Exceeding this limit will still create new pages.

To make the unlimited report, open it in the designer. In the Property inspector, select the page of the report and set UnlimitedHeight property = true, or UnlimitedWidth = true if your report grows in width.

For the measurements we use the built-in FastReport profiler:

Profiler.Start(); - to start;

Profiler.Stop(); - to stop and show result.

I'm starting each export in turns and recording the results of profiling. By the way, profiler displays the results in a MessageBox:

 

Measurement results

For a typical multipage report time of building mostly got reduced. However, not for all reports: when exporting to PDF format time of building increased slightly. Apparently not all optimization has been completed.

 

For the same multipage report memory consumption is reduced considerably.

And what about the "unlimited" report?

Here’s the same thing. Time of construction reduced for each dimension.

As well as memory consumption – it has strongly reduced. For each dimension, except PDF. But the difference is minimal.

 

For those who prefer in tabular form:

Measurements version 2016.4.0

 

 

Multi page

Unlimited page

Размер, Kb

Время, ms

Размер, Kb

Время, ms

Prepare

1336

875

4040

875

PDF

87396

7031

81986

7220

XLSX

23092

1547

18784

1734

HTML

7354

2897

50576

1954

Measurements version 2017.1.0

 

Multi page

Unlimited page

Размер, Kb

Время, ms

Размер, Kb

Время, ms

Prepare

1020

735

1088

703

PDF

85482

7167

82654

7149

XLSX

16512

1359

16228

1640

HTML

2445

2725

9180

1890

 

As you can see, the overall picture is significantly improved in the new version. See how memory consumption decreased for the HTML report with dimensionless page. Unlike 2016.4.0 memory consumption has decreased from 50576 to 9180Kb. Value has improved by more than 5 times! But this is the most used reports, for the web. Excellent job!

What has changed inside?

In versions below 2016.4.4 used ExportPage method. It received the entire page to move then through all the objects and save them in the desired format.

Then the page was removed from memory and next one was taken.

If the totals were tabular formats, all of it accumulated in the intermediate matrix.

If your report was not very big, you do not notice the problems.

However, with the advent of "unlimited page" (UnlimitedHeight and UnlimitedWidth), there were problems - memory consumption.

It was decided to move to Band's data transfer to export. This has greatly reduced memory consumption. FastReport team thoroughly worked and reworked the core of generator. However, the issue with the matrices is still not resolved because they occupy only one band, but grow in size. But it's just a matter of time.

In tests, we found that memory consumption for the unlimited pages noticeably reduced. But the time of construction in some cases slightly increased. However, not much.

So, as we have seen, much work has been done and performance improved significantly. This is especially noticeable for HTML export, which is extremely valuable for Web-based reporting.

Fast Reports
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314

© 1998-2024 Fast Reports Inc.
Trustpilot