[Libreoffice] Calc - a better design ...
Michael Meeks
michael.meeks at novell.com
Thu Jul 28 01:54:49 PDT 2011
Hi Kevin,
On Thu, 2011-07-28 at 01:07 -0400, Kevin Hunter wrote:
> Actually, as text it is convincing.
Hah ;-) there is a lot more, around dependencies. You'd be surprised at
how much time + space is spent in a spreadsheet making sure we only
re-calculate the right pieces.
> So my original analogy to CSS works, but your example of
> sum(*array) vs for(i = 0...) and making use of SIMD is also telling.
Good 'oh :-)
> Who is working on these particular internals, if anybody? Do I take
> from your last sentence that the answer is "partially nobody"?
AFAIK no-one; I'd get stuck into ixion though, hopefully that will
provide the future of calc. Failing that, we can do some
pre-re-factoring that'll help the calc core before we get all the way
there. Reducing the footprint of ScCell * around the place would be
particularly helpful: eg. for undo/redo might be useful - and splitting
things out of it.
One way to get a good exposure to that is to work at removing the
'ScPostIt *mpNote' pointer that is in every ScCell. That adds a pointer
(4 or 8 bytes) to every single cell, despite there being almost no notes
in almost all spreadsheets :-) Also the UNO implementation of note
navigation is risible, with an O(n) where n is (count-of-cells-in-sheet)
implementation - which we use for saving to ODF. So some real
performance / memory savings possible there - and of course you'll
quickly become familiar with the pain points around galloping ScCell
usage everywhere :-)
> I would /love/ to get my hands dirty on exactly this kind of
> restructuring and code work ... if only my hands weren't currently tied
> to a graduate degree that I also enjoy. Sigh.
So - the above is a good way to get started I suppose :-) certainly for
large sheets it will save some memory, help lay the foundations of an
eventual re-factoring away from an 'ScCell *' world, and perhaps improve
performance in some cases too.
HTH,
Michael.
--
michael.meeks at novell.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice
mailing list