Thank you for your quick replies. There is a filed bug :
https://issues.apache.org/bugzilla/show_bug.cgi?id=53148 The problem is resolved. Στις 24 Απριλίου 2012 10:06 π.μ., ο χρήστης mehdi houshmand < [email protected]> έγραψε: > Hi, > > I'll address your concerns inline: > > 2012/4/24 Αναστάσιος Χαρούλης <[email protected]> > >> Hello, >> >> We are using Apache FOP 1.0 to create Postscript documents from xml files. >> After upgrading the Java Virtual Machine from 1.6 update 18 to 1.6 update >> 19, we noticed important performance degradation. The FOP execution time was >> increased about 25% - 35% (depends on the number of executions). After >> investigating this, we concluded that the code that was responsible for this >> delay was in the method setValue of inner class BeanSetter of class >> o.a.f.fonts.type1.AFPParser. This method uses reflection to set the value of >> a bean and our tests showed that the time to execute a reflection call like >> this was increased in jdk6 u19. We also noticed that for each FOP execution >> (instantiation of a org.apache.fop.apps.Fop object) the fonts are loaded in >> memory (field org.apache.fop.fonts.FontInfo in class AreaTreeHandler) . >> >> > I think you mean o.a.f.fonts.type1.AFMParser (very different to an AFP > parser) but yes, that mechanism could work just without the use of beans, > but it's a fickle mechanism and it would have to be done with care. > > We are wondering if there is a plan for caching the loaded fonts in an object > that is reused between successive executions (e.g. in the > org.apache.fop.apps.FopFactory). This would mean that the extra cost would > occur only in the first execution. Do you think this is a good idea or is > there a specific reason for the fonts not to be cached ? >> >> No, as far as I know font caching isn't really on anyone's agenda. If > someone wanted to do this properly it would be a significant amount of > work. The fonts system would have to be externalized so that it behaved > more like a font provision service rather than the tight coupling to FOPs > layout system. This would mean a lot of code redesign and that's no small > feat. > > If the fonts caching is not a good idea, do you think the use of reflection > in the BeanSetter class could be avoided? >> >> Font caching is a good idea, it's just a lot of work... And I do think > the BeanSetter could be avoided, but the current code is battle-hardened so > you'd just have to make sure you test it thoroughly to avoid regressions. I > wanted remove the BeanSetter system when working in that initially, but as > always more pressing concerns took over. > > <snip/> > > Hope that helps, > > Mehdi >
