mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-26 07:20:57 +01:00
Use the changeset parse cache when rendering inline comments in mail
Summary: Ref T13202. See PHI903 and PHI894. When a bot leaves 100 inline comments on the same file and the revision has a 30-member recipient list, we currently highlight the file 3000 times when building mail. Instead, engage the parse cache so we highlight it once and reuse the cache 2,999 times. Test Plan: - Added debugging code to stop after mail generation and show cache hits/misses. - Left a bunch of inlines in a file. - Ran the worker with `bin/worker execute --id ...`. - Before change: saw 4 comments x 2 recipients = 8 cache misses - After change: saw 8 cache hits (cache already filled from web UI rendering) - Removed debugging code, ran worker to completion. - Used `bin/mail show-outbound --id ... --dump-html` to inspect resulting mail, saw no functional differences. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13202 Differential Revision: https://secure.phabricator.com/D19721
This commit is contained in:
parent
dbf2302b6c
commit
39b85c0be0
1 changed files with 6 additions and 0 deletions
|
@ -345,7 +345,13 @@ final class DifferentialInlineCommentMailView
|
|||
$offset_mode = 'old';
|
||||
}
|
||||
|
||||
// See PHI894. Use the parse cache since we can end up with a large
|
||||
// rendering cost otherwise when users or bots leave hundreds of inline
|
||||
// comments on diffs with long recipient lists.
|
||||
$cache_key = $changeset->getID();
|
||||
|
||||
$parser = id(new DifferentialChangesetParser())
|
||||
->setRenderCacheKey($cache_key)
|
||||
->setUser($viewer)
|
||||
->setChangeset($changeset)
|
||||
->setOffsetMode($offset_mode)
|
||||
|
|
Loading…
Reference in a new issue