diff options
author | Eric Wong <e@yhbt.net> | 2020-04-17 09:28:49 +0000 |
---|---|---|
committer | Eric Wong <e@yhbt.net> | 2020-04-17 09:52:26 +0000 |
commit | d0147582e289fdd4cdd84e91d8b0f8ae9c230124 (patch) | |
tree | 02d60802e4eef79bbbe7f9ca4a2210f2d3a07f28 /Documentation/technical/data_structures.txt | |
parent | c23c96b1da7bfff3efe64ad415c0feb424d34559 (diff) | |
download | public-inbox-d0147582e289fdd4cdd84e91d8b0f8ae9c230124.tar.gz |
We can rid ourselves of a layer of indirection by subclassing PublicInbox::Smsg instead of using a container object to hold each $smsg. Furthermore, the `{id}' vs. `{mid}' field name confusion is eliminated. This reduces the size of the $rootset passed to walk_thread by around 15%, that is over 50K memory when rendering a /$INBOX/ landing page.
Diffstat (limited to 'Documentation/technical/data_structures.txt')
-rw-r--r-- | Documentation/technical/data_structures.txt | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/Documentation/technical/data_structures.txt b/Documentation/technical/data_structures.txt index 08dfc7ac..46d5acff 100644 --- a/Documentation/technical/data_structures.txt +++ b/Documentation/technical/data_structures.txt @@ -61,15 +61,13 @@ Per-message classes There may be hundreds or thousands of these objects in memory at-a-time, so fields are pruned if unneeded. -* PublicInbox::SearchThread::Msg - container for message threading +* PublicInbox::SearchThread::Msg - subclass of Smsg Common abbreviation: $cont or $node Used by: PublicInbox::WWW - The container we use for a non-recursive[1] variant of + The structure we use for a non-recursive[1] variant of JWZ's algorithm: <https://www.jwz.org/doc/threading.html>. - This holds a $smsg and is only used for message threading. - This wrapper class may go away in the future and handled - directly by PublicInbox::Smsg to save memory. + Nowadays, this is a re-blessed $smsg with additional fields. As with $smsg objects, there may be hundreds or thousands of these objects in memory at-a-time. |