[PR #3438] [WIP] Perf: construct & reuse clusters in output thread #25366

Open
opened 2026-01-31 09:09:03 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/3438

State: closed
Merged: No


Summary of the Pull Request

By constructing clusters for rendering early in the output thread, the rendering thread will be relieved, making overall performance better when under heavy load.

References

#3075

PR Checklist

  • Closes #xxx
  • CLA signed. If not, go over here and sign the CLA
  • Tests added/passed
  • Requires documentation to be updated
  • I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

This is an attempt to tackle the TODO listed here:

94fc40ed31/src/renderer/base/renderer.cpp (L601)

I may be doing a lots of thing wrong but the performance boost is so good that I gotta share it with you guys. With this PR, catting my /etc/services takes only about 1.5 second, comparing to current release which takes about 5 seconds to do the same thing.

Validation Steps Performed

**Original Pull Request:** https://github.com/microsoft/terminal/pull/3438 **State:** closed **Merged:** No --- <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request By constructing clusters for rendering early in the output thread, the rendering thread will be relieved, making overall performance better when under heavy load. <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> ## References #3075 <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [ ] Closes #xxx * [X] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Requires documentation to be updated * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments This is an attempt to tackle the TODO listed here: https://github.com/microsoft/terminal/blob/94fc40ed31c0de050304248644458b21d0cce2e9/src/renderer/base/renderer.cpp#L601 I may be doing a lots of thing wrong but the performance boost is so good that I gotta share it with you guys. With this PR, catting my `/etc/services` takes only about 1.5 second, comparing to current release which takes about 5 seconds to do the same thing. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
claunia added the pull-request label 2026-01-31 09:09:03 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#25366