This is the final part of our comparative study of the two known report generators - Microsoft SQL Server Reporting Services and FastReport .NET. We have already examined functional capabilities, supported technologies, report objects and supported report export formats of them. To complete the study, it is worth introducing performance measurements.
For testing, take a simple report with a list of thousands of lines. For the purity of the experiment, we use the same data source in both report generators. The essence of the test is to generate a report and export it to three most popular formats: PDF, XLS, DOCX. Here we measure the export time in milliseconds.
Performance test (1000 rows) |
||||||
Try |
SSRS PDF |
FR PDF |
SSRS XLS |
FR XLS |
SSRS DOCX |
FR DOCX |
1 |
2500 |
1703 |
234 |
875 |
1484 |
3297 |
2 |
1641 |
1890 |
328 |
562 |
1140 |
3219 |
3 |
2109 |
2844 |
235 |
844 |
1172 |
3219 |
4 |
1547 |
2985 |
250 |
843 |
1000 |
3360 |
5 |
1485 |
2672 |
265 |
875 |
1063 |
3297 |
Five measurements are being tested.
1) Export to PDF. For SSRS, the average time is 1856 milliseconds. For FastReport .NET - 2418 milliseconds.
Here SSRS is clearly faster. FastReport has something to work on.
2) Export to XLS. SSRS showed an average time of 262 milliseconds, while FastReport .NET - 800 milliseconds. There is nothing surprising here. The product from Microsoft must be exported quickly to MS Office formats.
3) Export to DOCX. SSRS is again faster with 1172 milliseconds against 3513 milliseconds in FastReport .NET. The situation is exactly the same as in the previous export.
We can recognize leadership in this discipline for SQL Server Reporting Services. For a greater clarity, the results of the measurements are shown in the following picture.
If the situation with PDF export for FastReport is not critical, then in XLSX and DOCX export there is a loss by time of 3 times.
Now let us take a look at the size of the final files:
Export file size, KB |
||
Export |
SSRS |
FR |
|
308 |
204 |
XLS |
111 |
551 |
DOCX |
50 |
64 |
As you can see, the PDF file generated by FastReport .NET takes up one third less space than SQL Server Reporting Services. Due to the large number of PDF export settings in FastReport .NET you can achieve the minimum file size.
As for exports to XLS and DOCX, SSRS showed the best results. The size of the XLS file is five times smaller than any of the competitors! For DOCX, the difference is not significant.
Well, the results of this test are not straightforward. Conclusions will be made at the end of the article.
Let us do one more test - a stress test. We will display a large number of lines in the report - 2458524. It goes without saying, it is unlikely that such reports will exist in reality, but for our test it is necessary. As a DBMS we use MS SQL Server 2016 - a native data source for SSRS.
However, SQL Server Reporting Services did not master this task:
Truncated RAM. As a consequence, the error is: Exception of type 'System.OutOfMemoryException' was thrown. Yes, other programs also use RAM, but it is possible to use a virtual memory. The screenshot shows that the load on the disk is minimal, so the swap file is not used.
Now we will generate the same report in FastReport .NET 2017.2:
It took us 40 minutes to wait. But the report has been built. Take a look at the screenshot. Exhausting all RAM, FastReport .NET used a swap file - the load on the disk is 99%. The mission is complete.
The measurements were carried out using the following hardware configuration: CPU – Intel Core i5-2450M (2.5GHz), RAM – 8 GB, OS – Windows 10 x64.
The last stage of the comparative study is complete.
To sum up the tests in all three parts of the article we need to remember what happened in the previous parts of the study:
1) In the beginning, we looked at the functionality of the programs. In this comparison, FastReport .NET has an advantage over Microsoft SQL Server Reporting Services. Advantages: support for dimensionless report pages, events in the report, dialog forms and the ability to modify an already constructed report.
Score: SSRS - 0, FastReport .NET - 1.
2) Next, we have compared supported technologies. FastReport .NET was one of the leaders thanks to the support of ASP .NET Core. There are no real forecasts for ASP .NET Core support in SSRS yet. There are some "crutches".
Score: SSRS – 0, FastReport .NET – 2.
3) The supported report objects again showed the superiority of FastReport .NET over Microsoft SQL Server Reporting Services. In my opinion, the absence of CheckBox and Barcode objects is unforgivable for SSRS.
Score: SSRS – 0, FastReport .NET – 3.
4) Export the report in different formats. Reporting Services provides a very limited set of supported formats, only the most necessary. FastReport struck me with its impressive array of export formats for any occasion. This comparison consolidated the leadership behind him.
Score: SSRS – 0, FastReport .NET – 4.
5) The performance measurement was evaluated by the time the report was exported in three different formats: PDF, XLS, and DOCX. In this test, an unconditional victory was won by SSRS.
Score: SSRS – 1, FastReport .NET – 4.
6) The test of the size of the export file showed that same three export formats from the previous test. Here FastReport .NET formed a more compacted PDF file, whilst SSRS generated smaller files with the extension .xls and .docx. It it considerate as a draw game.
Score: SSRS – 2, FastReport .NET – 5.
7) Reporting Services failed the stress test to generate a "giant" report with more than 2 million lines. The report is not generated. FastReport managed in 40 minutes.
Score: SSRS – 2, FastReport .NET – 6.
To draw conclusions, according to out tests and their results FastReport .NET surely outperforms Reporting Services in many respects and could quite replace a competitor. Any task related to the generation of reports is possible for FR.
However, I can not say that Reporting Services is a bad report generator. It completes its tasks well . After all, it was created to work with MS SQL Server. This bundle fully justifies its use.