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


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@novell.com  <><, Pseudo Engineer, itinerant idiot


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.