Забыли пароль?
  • Главная
  • /
  • Статьи
  • /
  • Сравнительный анализ генераторов отчетов SQL Server Reporting Services и FastReport .Net. Часть 4. Сравнение производительности

Сравнительный анализ генераторов отчетов SQL Server Reporting Services и FastReport .Net. Часть 4. Сравнение производительности

Dmitriy Fedyashov

Это заключительная часть нашего сравнительного анализа двух известных генераторов отчетов Microsoft SQL Server Reporting Services и FastReport .Net. Мы уже рассмотрели ранее функциональные возможности, поддерживаемые технологии, объекты отчета и поддерживаемые форматы экспорта отчетов. В довершение анализа будет логичным провести замеры производительности.

Для тестирования возьмем простой отчет со списком из тысячи строк. Для чистоты эксперимента используем один и тот же источник данных в обоих генераторах отчетов. Суть теста – сформировать отчет и экспортировать его в три самых популярных формата: PDF, XLS, DOCX. Измеряем время в миллисекундах.

Тест производительности (1000 строк)

Попытка

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

 Итак, пяти замеров мне кажется достаточно.

1)    Экспорт в PDF. Для SSRS средний показатель 1856 миллисекунд. Для FR.Net – 2418 миллисекунд.

SSRS тут явно быстрее. FastReport есть над чем работать.

2)    Экспорт в XLS. SSRS показал среднее время 262 миллисекунды, а FR.Net – 800. Тут ничего удивительного. Продукт от Microsoft должен быстрее экспортировать в форматы MS Office.

3)    Экспорт в DOCX. И снова SSRS оказался быстрее, 1172 миллисекунды против 3513 у FR.Net. Ситуация ровно такая же, как и в предыдущем экспорте.

Можно признать лидерство в этой дисциплине за SQL Server Reporting Services. Для большей наглядности, результаты замеров приведены на графике:

Если ситуация с PDF экспортом для FastReport не так критична, то в XLSX и DOCX экспорте проигрыш по времени в 3 раза.

Теперь посмотрим на размер получившихся в результате экспорта файлов:

Размер файла экспорта, KB

Экспорт

SSRS

FR

PDF

308

204

XLS

111

551

DOCX

50

64 


Как вы видите, PDF файл у FastReport.Net занимает на треть меньше места, чем у SQL Server Reporting Services. Благодаря большому количеству настроек PDF экспорта в FR.Net вы можете добиться минимального размера файла.

Что же касается экспорта в XLS и DOCX, то тут лучшие результаты показал SSRS. Размер XLS файла в пять раз меньше, чем у конкурента! Для DOCX разница не существенна.

Ну что ж, результаты этого теста не однозначны. Выводы сделаем в конце статьи.

А пока, проведем еще один тест – стресс тест. Будем выводить в отчете большое количество строк – 2458524. Согласен, вряд ли такие отчеты будут существовать в реальности, но для нашего теста то, что надо. В качестве СУБД используем MS SQL Server 2016 - родная стихия для SSRS.  

Однако, SQL Server Reporting Services не осилил эту задачу: 

Банально закончилась оперативная память. Как следствие – ошибка: Exception of type 'System.OutOfMemoryException' was thrown. Да, ОЗУ используют и другие программы, но можно же использовать виртуальную память. Из скриншота видно, что нагрузка на диск минимальна, значит файл подкачки не задействуется.

Теперь сформируем такой же отчет в FastReport.Net 2017.2:

Ждать пришлось долго – 40 минут. Но все-таки отчет был построен. Посмотрите на скриншот. Исчерпав всю оперативную память, FR.Net задействовал файл подкачки – нагрузка на диск 99%. Поставленная задача выполнена.

Измерения проводились на следующей конфигурации ПК: CPU – Intel Core i5-2450M (2.5GHz), RAM – 8 GB, OS – Windows 10 x64.

Последний этап сравнительного анализа завершен и пора бы завершать сей опус, осталось лишь подвести итоги испытаний по всем трем частям статьи. Давайте по пунктам, заодно вспомним, что было в предыдущих частях.

1)      В начале мы рассмотрели функциональные возможности двух программ. В этом сравнении преимущество сталось за FastReport.Net. Преимущества: поддержка безразмерных страниц отчета, события в отчете, диалоговые формы и возможность изменять уже построенный отчет.

Оценки: SSRS – 0, FR.Net – 1.

2)      Далее мы сравнили поддерживаемые технологии. FastReport.Net оказался в лидерах благодаря поддержке ASP.Net Core. Реальных прогнозов по поддержке ASP.Net Core в SSRS пока нет. Есть некоторые «костыли», но это совсем не то, чего бы нам хотелось.

Оценки: SSRS – 0, FR.Net – 2.

3)      Поддерживаемые объекты отчета снова показали превосходство FR.Net. На мой взгляд, отсутствие объектов CheckBox и Barcode не простительно для SSRS.

Оценки: SSRS – 0, FR.Net – 3.

4)      Экспорты отчета в различные форматы. Reporting Services предоставляет весьма скромный набор поддерживаемых форматов, только самое необходимое. FastReport поразил внушительным набором форматов на любой случай жизни. Это сравнение закрепило лидерство за ним.

Оценки: SSRS – 0, FR.Net – 4.

5)      Измерение производительности оценивалось по времени экспортирования отчета в три разных формата: PDF, XLS и DOCX. В этом тесте безоговорочную победу одержал SSRS.

Оценки: SSRS – 1, FR.Net – 4.

6)      Размер файла экспорта. Все те же три формата экспорта из предыдущего теста. Здесь FR.Net сформировал более компактный PDF файл. А SSRS сгенерировал меньшие файлы с расширением .xls и .docx. Оцениваю, как ничья.

Оценки: SSRS – 2, FR.Net – 5.

7)      Стресс-тест на формирование «гигантского» отчета с более чем 2 миллиона строк Reporting Services провалил. Отчет не сформирован. FastReport справился за 40 минут.

Оценки: SSRS – 2, FR.Net – 6.

Если подводить итог по моим оценкам, то FastReport.Net уверенно превосходит Reporting Services по многим показателям и вполне бы мог заменить конкурента. Все достоинства продукта перечислять не буду. Скажу лишь, что ему под силу любая задача, связанная с генерацией отчетов.

Однако, я не могу сказать, что Reporting Services плохой генератор отчетов. Он выполняет свои задачи на твердую четверку. Ведь он создан для работы c MS SQL Server. Именно такая связка полностью оправдывает его использование.

 

 

Похожие статьи:

назад