Andreas L Delmelle wrote:
AFAICT, it is already parsed with SAX (see org.apache.fop.fonts.FontReader).

Perhaps it is something else then? :S


It doesn't seem like it's those widths by itself that are causing the problem. An array of 50K int-widths should correspond to min. 200K max. 400K of heap. :/

That sounds logical.

Can you provide a bit more context information?
Does it appear as a cumulative effect, or does the problem also present itself if the document has only one fo:block with a few characters? Does it (only) appear in a context where multiple documents are being rendered in parallel?

No, it appears with one document, with one table that has several cells with in some of those cells one character from another font. The rest of the document (which is in total 1 page) consists of SVG and some "plain" text blocks in other cells (with the default font). I tested without all the rest (no SVG etc) and the problem persisted. If needed, I can provide you with the full xsl-fo. When I remove the other font and replace it with a base-14 font, the problem disappears.

But my original memory counting was flawed by other processes. I did some additional tests and found that, regardless the size of the one-page table:

1. With only Base-14 fonts, FOP consumes about 25 MB of the JVM memory pool. 2. With the Arial Unicode MS (one char is enough), FOP consumes about 80 MB of the JVM memory pool 3. Without Tomcat (just commandline), FOP consumes approx. 95MB with the Unicode font.

Taken that the font itself (the TTF) is 23MB (but why would it be read in memory in full if you only need one character?), this still doesn't add up, not even if you count the 50.000 integers for the widths. But it makes it much more likely than my original 500MB increase (sorry about that).

Cheers,
-- Abel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to