Hi,

getCellAt is a very high level function, it resolves all the information
about the cells.
For bulk processing, use low level APIs to manipulate the DOM.

Regards,
Guillaume

Le dim. 19 janv. 2020 à 12:49, igNights77 <jvfhgc...@gmail.com> a écrit :

>
> Hello.
>
>
> I have been using jOpenDocument for some time now, and it behaves in a way
> that I do not understand.
>
>
> I have a *SpreadSheet* with only one non-empty *Sheet* containing 57495
> rows and 476 columns.
>
> Around 80% of the cells are blank, and with no style.
>
> The rest have a small *String* of 1 to 15 char max.
>
> I have defined 3 custom styles which are used on some of the cells.
>
> This *SpreadSheet* takes up 2.2MegaBytes on the disk.
>
>
> I perform the following code on it:
>
>
>
>
> *File* file = new *File*("fileName.ods");
>
>
> *Sheet* sheet = *SpreadSheet*.*createFromFile*(file).*getSheet*(0);
>
> *int* rowCount = sheet.*getRowCount*();
>
> *int* columnCount = sheet.*getColumnCount*();
>
> for (*int* y = 0; y < rowCount; y++)
> {
>
>      *System*.out.*println*(y);
>
>      for (*int* x = 0; x < columnCount; x++)
>      {
>
>
>          sheet.*getCellAt*(x, y);
>
>
>      }
>
> }
>
>
>
>
> Now from what I would expect, this code shouldn't really be doing anything
> at all.
>
>
> However, it keeps creating a bunch of *MutableCell* which are never
> unloaded.
>
>
> After about 2 minutes, the heap is taking up 4.8GigaBytes of the
> 6GigaBytes I have allocated it, 4.3GigaBytes of which is actually used.
>
> The program has created about 23 million *MutableCell*, and about as much
> *Element*, *Attribute[]*, *AttributeList* and *ContentList*.
>
> It has now reached row 48000.
>
>
> From then on it slows down significantly, progressing at about 1 row every
> 5 minutes. GC and CPU usage are both at about 0%.
>
>
> After about an hour it produces an OutOfMemoryError : Java heap space,
> even though it has still not reached the 6GigaByte limit.
>
>
> Could someone please explain this behavior? It seems that any call I make
> to the *getCellAt*() method makes the memory consumption explode.
>
> Because of this, I cannot use methods like *getCellAt*().*setStyleName*()
> or *getCellAt*().*merge*() in big files, which is a real problem for me.
>
>
> There is something I don't understand about the *getCellAt*() method. How
> would I go about setting the style of a cell, or merging cells in a big
> file?
>
>
> Thank you for taking the time to read me.
>
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "jOpenDocument" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jopendocument+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jopendocument/a7430116-12fd-4907-a2b4-b5c6fa8d4766%40googlegroups.com
> <https://groups.google.com/d/msgid/jopendocument/a7430116-12fd-4907-a2b4-b5c6fa8d4766%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"jOpenDocument" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jopendocument+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jopendocument/CALhNRbuC-HAeM2yxsCsUDxF%3DiJC1DjUeaCs1bc-D%2BQwS_KJMaQ%40mail.gmail.com.

Reply via email to