# Status report: consultancy team, week 11, 2025

**URL:** <https://forum.collaboraonline.com/t/status-report-consultancy-team-week-11-2025/3518>\
**Category:** Status reports\
**Created:** [March 18, 2025, 2:14pm UTC](https://forum.collaboraonline.com/t/status-report-consultancy-team-week-11-2025/3518 "2025-03-18T14:14:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vmiklos](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.collaboraonline.com/vmiklos/32/787_2.png) [@vmiklos](https://forum.collaboraonline.com/u/vmiklos)\
**Post date:** [March 18, 2025, 2:14pm UTC](https://forum.collaboraonline.com/t/status-report-consultancy-team-week-11-2025/3518/1 "2025-03-18T14:14:53Z")

</div>

# Caolan

- crashtesting, a CellAttributeHelper related problem  
 → [https://gerrit.libreoffice.org/c/core/+/182743](https://gerrit.libreoffice.org/c/core/+/182743)
- memory optimization
- tcmalloc + pprof + flamegraph to analyze what is  
consuming memory  
 → pprof has a (undocumented?, not in my man page anyway, but it  
works) --collapsed option to turn its output into something  
suitable for flamegraph, so  
pprof --collapsed coolforkit-ns /tmp/kitheap.heap |   
flamegraph.pl --color=mem  
gives useful output
- liblangtag uses a lot of memory to create a hashmap-alike thing  
but we create that during preload already, so can put that aside.
- can see that long-lived list/comboboxes retain a surprisingly  
large amount of memory. Some VirtualDevice, and some GlyphCache
- deltas generation requires space
- table autoformat relating things notable in writer mem profile
- memory optimization  
tcmalloc vs glibc, a decent “Private” memory size saving in favor  
of tcmalloc for small and large sample writer+calc documents
- see if any of the tcmalloc hooks could be used to redirect  
pre-fork/preload allocations to some specific pages so those could  
be left entirely untouched by later allocations/metadata-writes
- doesn’t look possible to me with what’s on offer, maybe doable by  
trying a similar approach though.
- websocket not seen as closed by client when permission denied  
 → [call onFinishCallback on early error cases too by caolanm · Pull Request #11326 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/11326)
- odd crash seen in crash emails, as if mutex use before init  
 → [init \_watchdogThread after \_watchdogMutex was constructed by caolanm · Pull Request #11323 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/pull/11323)
- bootstrap demo reuse of character sidebar panel for chart
- Typically its the toplevel “XFrame” that is seen, not the one  
belonging to embededed things like the chart (and math?) which  
is actually active  
 → [https://gerrit.libreoffice.org/c/core/+/182878/1](https://gerrit.libreoffice.org/c/core/+/182878/1)
- And then there is a problem where existing panels are  
“recycled”, but remain bound to the original XFrame, so that  
complicates things, but for proof of concept bodge around that  
and then chart gets the commands and queries from the panel  
 → [https://gerrit.libreoffice.org/c/core/+/182879/1](https://gerrit.libreoffice.org/c/core/+/182879/1)
- memory optimization
- fix merge conflict for pahole work and merge
- memory optimization  
 → [https://gerrit.libreoffice.org/c/core/+/182927](https://gerrit.libreoffice.org/c/core/+/182927) to disable  
double-buffer thing for combo/list boxes for online
- SwTableAutoFormat DefaultBoxFormat is large and we will  
always end up calling getStyle in a document, so we could  
create that during preload  
 → [https://gerrit.libreoffice.org/c/core/+/182972](https://gerrit.libreoffice.org/c/core/+/182972)
- but there are still near-duplicates of that created, so more  
thought needed to do something more useful there.

# Chris

- Work on mmeeks’ patch - #11255 - don’t free tile canvases, but queue them for re-use (PR #11304)

Next:

- Scrolling in Firefox on a 4k monitor is very slow
- Sidebar reopening Triggers double canvas in Impress and Draw

# Mike

- Calc slow with Select All
  - Is this because of too many columns allocated?
  - The document has formatting for about the whole area, excluding parts of several last columns
  - Created [https://gerrit.libreoffice.org/c/core/+/182930](https://gerrit.libreoffice.org/c/core/+/182930)
  - Preparing a patch to check if changing last columns’ formatting actually changes them compared to the unallocated default, to avoid their allocation
  - This doesn’t help, allocation still happens, the check only takes more time
  - Prepared a sample that has only a few columns
  - The problem is still reproducible
  - Several problems:
    - Unneeded height calculation for preview (need to avoid that for font preview)
    - Unneeded column allocation (still debugging)
    - The height recalculation happens several times

  - Working on a patch for the first problem (SID\_ATTR\_CHAR\_PREVIEW\_FONT / ScViewFunc::UpdateSelectionArea)

# Miklos

Finished work on [Implement Per-User Change Tracking · Issue #11226 · CollaboraOnline/online · GitHub](https://github.com/CollaboraOnline/online/issues/11226)
