Медленная отрисовка страницы с помощью PdfBox Android - PullRequest
0 голосов
/ 13 июля 2020

Я использую PdfBox 1.8, перенесенный на android (https://github.com/TomRoush/PdfBox-Android), чтобы отображать страницы в приложении.

Для загрузки документа размером 7 МБ, который я использую, требуется 8 секунд , то для рендеринга каждой страницы требуется 0,5–2 секунды.

Я пробовал другие приложения и библиотеки для просмотра PDF-файлов, и все они способны мгновенно загружать и отображать один и тот же документ.

Как ни странно, после преобразования этого файла в цветовое пространство RGB он мгновенно отображает страницы. Хотя это может быть связано с изменением файловой структуры, поскольку она также была линеаризована, а операторы, похоже, сжаты.

Я проанализировал и профилировал различия между визуализацией двух документов:

  1. В исходном документе сборщик мусора работает долго.

  2. В исходном документе журнал продолжает печатать: «W / System : Ресурсу не удалось вызвать конец. ".

  3. В новом документе гораздо меньше графических операторов.

Интересно, может ли кто-нибудь знать причину этого и / или как это исправить.

РЕДАКТИРОВАТЬ:

Исходный документ:

Новый документ (преобразованный в цветовое пространство RGB):

Если посмотреть на время настенных часов, вызываемых функцией, в профилировщике, то особых узких мест нет. Возможно, PdfBox очень медленно обрабатывает графические операторы, что объясняет, почему новый документ загружается быстрее, поскольку в нем всего около 2 операторов на страницу, в отличие от многих десятков в оригинале.

...