Как оценить производительность отчета BIRT? - PullRequest
4 голосов
/ 03 июня 2011

У меня есть отчет BIRT с проблемами производительности: запуск занимает около 5 минут.

Сначала я думал, что проблема была в базе данных: в этом отчете используется довольно сложная хранимая процедура SQL Server для извлечения данных. После многих оптимизаций SQL эта процедура теперь выполняется ~ 20 секунд (в консоли управления).

Однако сам отчет по-прежнему занимает слишком много времени (несколько минут). Как определить другие узкие места в генерации отчетов BIRT? Есть ли способ профилировать весь процесс? Я запускаю его с помощью www viewer (работающего внутри Tomcat 5.5), и у меня нет никаких обработчиков событий Java, все делается с использованием стандартных SQL и JavaScript.

Я смотрел вебинар "Проектирование высокопроизводительных отчетов BIRT" 1 , у него есть некоторые интересные соображения, но он мало чем помог ...

Ответы [ 3 ]

3 голосов
/ 21 июня 2013

Для всех, у кого есть проблемы с производительностью BIRT, вот еще несколько советов.

  • Профилирование отчета BIRT может быть выполнено с использованием любого профилировщика Java - напишите простой тест Java, который запускает ваш отчет, а затем профилируйте его. В качестве примера я использую модульные тесты из SpudSoft BIRT Excel Emitters и запускаю JProfiler из Eclipse. Проблема не в том, чтобы его профилировать, а в понимании полученных данных:)

  • Сценарии, связанные с источниками данных, могут абсолютно снизить производительность. Даже сценарий, который выглядит так, как будто он должен иметь только прямое влияние, может действительно остановить эту вещь. Это самый большой убийца производительности, который я нашел (настолько большой, что я переписал довольно много Emitters Excel, чтобы сделать его ненужным).

  • Используемый вами излучатель оказывает влияние. Если вы пытаетесь сузить проблемы с производительностью, всегда выполняйте отдельные задачи «Выполнить» и «Отрисовка», чтобы вы могли легко увидеть, на чем сосредоточить свои усилия.

  • Различные параметры излучателей могут влиять на производительность, особенно при использовании сторонних излучателей (теперь излучатели SpudSoft имеют несколько вариантов ускорения создания больших отчетов).

  • Разница между Fixed-Layout и Auto-Layout значительна, попробуйте оба варианта.

2 голосов
/ 24 апреля 2013

Когда я пишу этот ответ, вопрос приближается к 2 годам, так что, вероятно, вы нашли способ обойти проблему.Никто не предлагал профилировщик для всего процесса, поэтому вот несколько способов определения «горлышков бутылок».

  1. Время запуска - здесь можно потратить около минуты

    • запуск нескольких отчетов один за другим или запуск второго после запуска первого может помочь в диагностике проблем.
  2. Время выполнения SQL-запроса - хорошие решения упоминаются ввопрос

    • при любом тестировании трассировки и производительности SQL будут выявлены проблемы.
  3. Создание отчета. Именно здесь я замечаю львиную долю временибыть взятымЗапустите трассировку SQL во время создания отчета.Даже относительно простые таблицы с большим количеством данных могут занять около минуты для настройки и отображения (HTML через apache tomcat) после того, как трассировка SQL показывает, что запрос выполнен.

    • упростить отчет или создать клон с меньшим количеством диаграмм или таблиц, запущенных с частями и без них, чтобы посмотреть, не создаст ли заметная разница.записи легче отображать,
  4. Способ доставки PDF, Excel, HTML могут иметь разные проблемы

    • Попробуйте отчет в разных форматах
    • если один значительно больше, попробуйте разные излучатели.
0 голосов
/ 10 марта 2015

Вы проверили, сколько памяти вы используете в Tomcat?Возможно, вы не назначаете достаточно памяти.Быстрый тест - запустить BIRT Designer и назначить ему дополнительную память.Затем в программном обеспечении BIRT Designer запустите отчет.

...