Создание большого количества небольших файлов PDF - PullRequest
0 голосов
/ 14 июля 2020

В настоящее время мне нужно сгенерировать большое количество небольших файлов pdf (около 18000 файлов pdf)

На создание каждого из них уходит около 1.x - 2 секунды, упростите, скажем, нужно 2 секунд

Итак, 18000 * 2 секунды = 36000 секунд = 10 часов Это занимает слишком много времени

Мой способ создания PDF-файла - это каждый раз вызывать исполняемый файл FOP java для создания одного PDF-файла файл, предоставляющий xml, xsl (для преобразования в формат FOP xml).

Работа java заключается в том, что каждый раз, когда я вызываю FOP, он создает java Процесс виртуальной машины (java) для его запуска. Я думаю, что это будет тратить много времени из-за создания и удаления процесса java vm 18000 раз для создания 18000 pdf-файлов.

Я не знаком с процессом Java VM, но предполагаю, что ресурс может может использоваться повторно и управляться с помощью Java ВМ, чтобы многократное повторное создание процесса java ВМ не требовало больших накладных расходов?

Если воссоздание процесса Java ВМ является большим накладные расходы, написание другой программы Java для прямого вызова функции FOP API (вместо вызова исполняемого файла FOP) и выполнения l oop есть способ go?

Любое предложение очень оценен.

1 Ответ

0 голосов
/ 14 июля 2020

Вы можете создать вызовы для выполнения преобразования FOP в любую программу Java, и прохождение вашего длинного списка XML / XSL / PDF сократит запуск виртуальной машины для каждого PDF-файла, плюс это ускорится из-за JIT сборники для 2-го и последующих прогонов. Пример кода находится на Apache веб-сайте FOP

Другая возможность со встроенным подходом состоит в том, чтобы создать сервер преобразования FOP как RMI-сервер , чтобы ваша служба FOP могла быть вызывается несколько раз, и клиентское приложение имеет c logi всех ваших входных данных, а сервер создает PDF-файл.

...