Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


On 14/10/15 02:08, Kohei Yoshida wrote:
Also, this will be an on-going process.  This is not going to be like
"if you do A, B and C it's okay to increase the column size and no
problems will occur".  Rather, we'll probably encounter lots of
performance issues that we'll have to spend some time fixing after the
column size is increased.

Just throwing an idea into the mix...

Howsabout a function that, on being given the cell co-ordinates, returns
a pointer to the cell. Force everything through that.

Okay, that's an extra level of indirection, that on a large spreadsheet
could cost a lot. But is it worth it in terms of memory saved? The
important point here is that you can change the in-memory storage of
your spreadsheet to match its characteristics.

If you have a small spreadsheet, you simply have a two dimensional array
of cells.

If you have say 100 cells with stuff in, in a spreadsheet that might be
1000x1000, you can have a lookup table that lists all the columns with
data, and within that all the rows that have data ...

I can't think of any more examples particularly. But if you have that
abstraction layer, you can optimise for different characteristics of
different spreadsheets.

(I'm coming at it from my database background, where Pick stores
everything as strings, and it's amazing how fast it actually finds stuff
even despite having to search sequentially through what is possibly a
long string, and how convenient it is to be able to use "proper" arrays
and "dynamic" arrays (delimited strings) together to optimise speed.)

As I say, this is just an idea, it might be a no-no, but if it can
optimise large sheets while not costing small sheets much, it could well
be worth it.

Cheers,
Wol

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.