thanks for your detailed response. I would like to implement most of your suggestions. Unfortunately, it seems that my bosses have decided against keeping our OpenOffice solution. This could very well be a failure on my part to write optimal code, I don't know.
But while I am on my soapbox, I would just like to say one thing. The thing that puts OpenOffice way ahead of "the competition" is the API. I, and I suspect a lot of possible OpenOffice customers would like to see a faster api. I think the decision to stop using an ODF solution is short sighted, but I can't seem to do much about it. Thanks again for all the help and for creating a very good tool. --- Mathias Bauer <[EMAIL PROTECTED]> wrote: > Kent Gibson wrote: > > > There is no loading, we render each document from > > scratch and always keep the result in memory. It > is > > hard to pinpoint our bottlenecks. There is not one > > particular place. However for example, inserting > into > > the document and stlying each cell of a table are > > pretty costly operations. > > Our table API isn't very fast, that's true. We are > currently working on > a simplified API to insert tables that allows to > hand over attributes > for a larger bunch of cells or rows in one step. If > that was possible in > your case you could save some time here. It should > especially speed up > insertion of simple nxm-tables (n rows with m > columns) without any > subtables or rowspans. > > I don't expect this new API and its implementation > to be ready before > the 2.2 release but perhaps it's interesting for you > to know that > something happens here. If you want you can use one > of our developer > builds for testing as soon as we have one that > contains this new API. > > > Just last week the biggest problem was with > frames. We > > rely heavily on frames. After I inserted into the > > doument say over a hundered frames I noticed a > severe > > slow down, as if a memory leak. However I followed > > Laurent Godard advice (thanks) and ensured the > > controllers were locked and this problem is now > > insignificant. But generally we would like to > still > > boost overall performance if possible. > > If your frames aren't anchored at the page (what > usually is the case) we > have another bottleneck in the rendering code if you > have a lot of > frames on one page (>100!). But currently we > consider this to be a bit > exotic. We applied some optimizations for this case > though (forgot > wether it will be in 2.1 or not). > > > This is is our setup: we have a tables, with > frames > > inside the tables, anchored to the paragraphs. > Inside > > these frames can be tables, text or images. To try > and > > avoid round trips to the api we call macros which > > create frames ( and page styles) . These macros > > sometimes also insert the frame into the document. > > Are you sure that your API roundtrip (I assume that > you talk about > remote calls) is really slower than a macro? Our > Basic is not famous for > being the fastest on earth. Just a thought. At > least a small benchmark > is recommended. > > Alternatively you could try C++ code instead of > macros and place it into > the OOo process as an extension (a service you can > call). This should > create the least possible overhead. Even > implementing this service in > Java could be an idea; OOo instantiates Java > extensions in its own > process. So while you still have a Java UNO bridge > between the Java code > and the OOo API it will be not interprocess call. > > > These almost always return the XTextFrame. We also > use > > frame styles. Furthermore all text has a character > > style and a paragraph style associated with it. > > Perhaps you could save some time in making the most > often used styles > the default one of your document. It would save you > setting them explicitly. > > > The idea to do more processing with macros, so > that > > there is less roundtripping sometimes works and > > sometimes doesn't. The problem is that for example > > sometimes I send all of the content for a table > and > > try to let the macro do all the formatting, and it > > often works ok, but sometimes I get funny side > effects > > as if it is working too fast?! As soon as I switch > > back to an algorithmn that uses less macros and > more > > api, the results are more consistent. > > > > I also still sometimes get funny side effects with > > images. Sometimes I can render a document and the > > image does not get scaled correctly. I render the > same > > exact document without changing anything and it > gets > > rendered ok. > > Some API calls might require some formatting that > happens in the > background. Other API calls relying on this should > produce correct > results by forcing pending updates if necessary but > I can't exclude that > this doesn't happen always. Perhaps this could > explain some of your > "funny" problems. Did you try to force layout > updates before doing > "critical" calls? > > > I have played around quite a bit with the memory > > settings but never really got a perfect setup. > > The effect of the memory settings on performance on > decent computers is > heavily overrated. ;-) > > > With the peformance gain from locking the > controllers > > I reckon if I could squeeze another 25% somewhere > I > > would be very satisfied. But I am not sure how to > do > > it. I would hate to waste a lot of time trying to > > build OpenOffice and see no gain. > > The problem is that a real helpful tip isn't > possible without knowing > exactly which operations are the most painful for > you (from a > performance perspective). I tried to address the few > points you > mentioned, perhaps there's something useful in it. > > Best regards, > Mathias > > -- > Mathias Bauer - OpenOffice.org Application Framework > Project Lead > Please reply to the list only, [EMAIL PROTECTED] > is a spam sink. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]