--- Begin Message ---
Subject: |
Tabulated-list-mode wasteful properties |
Date: |
Sun, 17 Jan 2021 02:32:52 -0500 |
User-agent: |
NeoMutt/20180716 |
Tabulated lists can grow quite large. In fact, the most common use for
the mode is the *Packages* buffer listing, which for me today clocks in
at 5211 lines * five columns. In the case of the *Packages* buffer, Performing
(buffer-substring (point) (line-end-position))
on a sampling of lines yields 'PP eval' buffers of length ~500 - ~700
characters.
Most of this looks to me to be unnecessary duplicate data. In using the
mode for my own purpose, I see that the mode is putting all data of all
columns in an entry (row) in each and every single column, ie the size
grows exponentially by number of columns (in my personal case, ten
columns).
This isn't breaking anything, but it looks like bad design unnecessarily
hogging memory and filling buffers with cruft.
--
hkp://keys.gnupg.net
CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#45926: Tabulated-list-mode wasteful properties |
Date: |
Tue, 20 Apr 2021 22:35:53 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Stefan Kangas <stefan@marxist.se> writes:
> Boruch Baum <boruch_baum@gmx.com> writes:
>
>>> Borouch, did you have the time to look into if this data is indeed
>>> shared or not? Thanks.
>>
>> Oh. I thought I had done that right away ...
>>
>> Doing it again now. Yes. It's very simple to check for yourself. Open a
>> buffer that uses the mode and evaluate from any table line ...
>>
>> (buffer-substring (line-beginning-position) (line-end-position))
>>
>> You should be able to clearly see all the duplication. It's easiest when
>> you have pretty-print set up to display the output in a dedicated
>> buffer, but even without that you can isearch through the duplications.
>
> I think the interesting question is if that data is duplicated in memory
> or if these are just pointers to the same shared data.
>
> I would try modifying this data with something like `setcdr' to see if
> it updates everywhere -- if the answer yes, then this data is shared and
> there is no problem here.
More information was requested, but none was given within 5 weeks, so
I'm closing this bug.
If anyone can provide further information on this issue to show that
there is a bug here, please reply to this email (use "Reply to all" in
your email client) and we can reopen the bug report.
--- End Message ---