@Rincewind: ale ja nie mówię o samym parsowaniu. Problem jest w transformacji XMLowej i dlaszym przetwarzaniu.
tmp*.fo jeszcze tworzy się szybko ale później datacache*.tmp to już masakra i trwa kilka godzin.

Mowa o tej części procesu FOP, która następuje po parsowaniu, co może być problemem słabej wydajności?
Generowany PDF ma ok. 100 tys. stron.
@franekfm: Nie wiem, nie używałem tej biblioteki. W dokumentacji piszą, że wydajność może poprawić buforowane wyjście (java.io.BufferedOutputStream), tudzież cache'owanie styli. Dodatkowo spory overhead bywa powodowany referencjami wprzód, typu odnośnik w page-sequence do strony w page-sequence występującej później, czy chociażby spis treści na początku dokumentu zamiast na końcu.
https://xmlgraphics.apache.org/fop/1.1/embedding.html#performance
https://xmlgraphics.apache.org/fop/0.95/running.html#memory

Ale to wszystko pewnie sam już wyczytałeś. Inaczej nie mogę pomóc.