microsoft/Terminal
GitHub で見る[Performance] Replace std::vector with more lightweight structure in `RenderData::GetPatternId`
Open
#10,564 opened on 2021年7月6日
Area-PerformanceArea-RenderingHelp WantedIssue-TaskProduct-Meta
Repository metrics
- Stars
- (35,764 stars)
- PR merge metrics
- (平均マージ 27d 19h) (30d で 24 merged PRs)
説明
This is about the scrolling test in #10563. A simplified repro would be:
time bash -c 'yes | head -n1000000'
which takes 7-8s with windows terminal and 300ms with gnome terminal.
Test case provided by @lhecker.
These lines show up in the hot paths of the trace of OpenConsole:
https://github.com/microsoft/terminal/blob/main/src/renderer/base/renderer.cpp#L788

It appears that simply constructing empty std::vector (empty because this is in conhost/OpenConsole) is quite expensive.
CC @PankajBhojwani