Thanks for the attention you have brought to this issue Svante. In the meantime, I have written some small utils for myself which drastically improve the performance (writing 10000 rows in 3 seconds instead of 70).
I achieved this by manipulating the DOM directly with the ODFDOM API. Perhaps we can think of a way to integrate such utils better into the Simple API. When I have a moment I will share the functions I have written (there is actually nothing special about them, they just do simple DOM manipulations using the ODFDOM API.) Best, Nick 2014-02-10 10:42 GMT+01:00 Svante Schubert <[email protected]>: > Thank you very much for bringing up a performance comparison, Nick and > as well to you Rafael for your suggestions. > I have created an issue about the problem and attached Nick's test class. > > In general we might want to have performance regression tests, which > always depend on the machine the test is being executed, therefore some > normalization is required beforehand. Some kind of benchmark a test that > we do not alter, anything others might use for this kind of purpose. > > I can give only small assistance here, I am changing my house the next > weeks and have little time to spend (aside of my daily work for bread & > water). > > Hope you all are at a start of a great week! > Svante > > Am 31.01.2014 14:31, schrieb Rafael Medeiros: > > Suggestions to improve peformance: > > > > 1 - Create cells without informing the style increases the file size, > > always tell the name of the style - decreases the file size; > > 2 - When was merge, remove the contents of the cell and then do the > merge; > > > > Atenciosamente, > > > > Rafael Nunes > > I'm free - Linux > > Linux User #439174 > > http://www.linkedin.com/in/mederafael > > > > > > On Fri, Jan 31, 2014 at 9:25 AM, Nicholas Evans <[email protected] > >wrote: > > > >> Dear ODF users, > >> > >> For a project I am working on, I am using the ODF toolkit to create > >> spreadsheets that can become rather large (>10 000 rows). I have > noticed > >> that as the spreadsheet gets larger, writing the rows becomes very > slow. I > >> have put together a class containing 4 different ways of writing 10 000 > >> rows of 10 columns to a spreadsheet. The fastest method (using > >> getRowByIndex and then getCellByIndex) takes 70 seconds. The methods > that > >> use getRowList and getNextRow are much slower, taking about 170 seconds > >> each. The method using the Iterator<Row> seems to freeze for large > inputs, > >> and doesn't behave as expected for small inputs. > >> > >> I would really like to improve this performance. I think this could be > >> done by manipulating the DOM directly. However, it would great if there > >> was a way of using the Simple API that I have overlooked that could > help me. > >> > >> Does anyone have experience with improving the performance of the ODF > >> toolkit in the context of writing rows to an ods spreadsheet? > >> > >> Regards, > >> Nick > >> > >
