diff options
author | Eric Wong <e@80x24.org> | 2019-01-08 00:41:12 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-01-08 00:43:14 +0000 |
commit | 7d02b9e64455831d3bda20cd2e64e0c15dc07df5 (patch) | |
tree | 9a219098dd2ec77f6f1bdad520b7cc972e661533 /lib/PublicInbox/View.pm | |
parent | 081a425975a71c98d2a872ec592e0987e87bec7f (diff) | |
download | public-inbox-7d02b9e64455831d3bda20cd2e64e0c15dc07df5.tar.gz |
While we try to discard the $smsg (SearchMsg) objects quickly, they remain referenced via $node (SearchThread::Msg) objects, which are stored forever in $ctx->{mapping} to cull redundant words out of subjects in the thread skeleton. This significantly cuts memory bloat with large search results with '&x=t'. Now, the search results overhead of SearchThread::Msg and linked objects are stable at around 350K instead of ~7M per response in a rough test (there's more savings to be had in the same areas). Several hundred kilobytes is still huge and a large per-client cost; but it's far better than MEGABYTES per-client.
Diffstat (limited to 'lib/PublicInbox/View.pm')
-rw-r--r-- | lib/PublicInbox/View.pm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index bb49c035..416cb4a8 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -218,7 +218,7 @@ sub index_entry { $rv .= $subj . "\n"; $rv .= _th_index_lite($mid_raw, \$irt, $id, $ctx); my @tocc; - my $mime = $smsg->{mime}; + my $mime = delete $smsg->{mime}; # critical to memory use my $hdr = $mime->header_obj; my $from = _hdr_names_html($hdr, 'From'); obfuscate_addrs($obfs_ibx, $from) if $obfs_ibx; |