Calc: Further cache simulation results

Michael Meeks michael.meeks at collabora.com
Mon Oct 1 09:31:58 UTC 2018


Hi Noel,

	Thanks for your work on this - pushing the thread to the public list
which is perhaps a better place for it.

	I think my interest here is not per-se about broadcaster vs. listener -
but mostly around the complexity of setting up and/or removing listeners
from a broadcaster as/when the sheet is manipulated - creating and
destroying columns eg. which reference another cell - there can be some
performance explosions shuffling things out of std::vectors.

	Kohei poked at a chunk of profiles like this in the past; probably
worth getting his input; any thoughts ?

	Thanks,

		Michael.

On 29/09/18 10:22, Michael Meeks wrote:
> Hi Noel,
> 
> On 28/09/18 16:08, Noel Grandin wrote:
>> On 2018/09/27 5:06 PM, Noel Grandin wrote:
>>> I had a quick look at ScFormulaCell with gdb's pahole script, and it
>>> strikes me that
>>>
>>> (a) the biggest chunk is the SvtListener base class (64 bytes!)
>>
>> the attached patch might help
> 
> 	Interesting. I wonder what the pathological usage patterns of this are.
> My hope is that (these days) if we have a 1m long formula-group that has
> some $a$1 term in it - that we create a single group dependency /
> listener for the whole formula-group - but, of course quite possibly we
> add ~1 million single-cell reference dependency. At which point using
> the set makes sense as that is manipulated.
> 
> 	Of course - ultimately, it is just bad design to use a bigger structure
> when we don't need to. My hope is that as we re-work the dependency
> engine to use FormulaGroups - that we end up in a situation that the
> vast majority of cells simply have no content in their SvtListener and
> we can replace it with single pointer to a heap allocated listener
> instead that is always NULL; or - even move to looking those up in a
> smallish hash of single-cell dependencies.
> 
> 	Anyhow - worth checking the corner-cases there, to see if our
> dependency work has simplified and evaporated out lots of single-cell
> dependencies to the point that the vector might work without exploding
> with some 1m^2 insert/delete behavior =)
> 
> 	Also - we should prolly discuss this on the public dev list; any
> objections ? =)

-- 
michael.meeks at collabora.com <><, GM Collabora Productivity
Hangout: mejmeeks at gmail.com, Skype: mmeeks
(M) +44 7795 666 147 - timezone usually UK / Europe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-WIP-use-std-vector-in-SvtListener.patch
Type: text/x-patch
Size: 2594 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20181001/4a1cfcc3/attachment.bin>


More information about the LibreOffice mailing list