Prefer using an HTML table with user-select: none in GHA logs
#2200
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When I tested #2199 I was a EuroRust on a not so great internet connection so I only tested on relatively "small" GHA logs (~30000 lines) and the perf was okay.
But when I went yesterday evening on https://triage.rust-lang.org/gha-logs/rust-lang/rust/52553156046 (which is ~80000 lines) the load of the page was very long, which isn't too surprising since the logs it-self is ~5Mio it-self, so I looked more in details as to why it is taking ~50s on my PC with Firefox to render the logs and realized that #2199 destroyed the perf by making the layout calculation in Firefox do much much more work. (Chrome is better but still slower than before)
To fix this perf regression and still make the timestamps not part of the copy, I switched the DOM to use an HTML table whose first column is the timestamps (which have
user-select: noneto prevent copy) and the second column is the log line.For context, with #2199 the layout calculation was 39s and with this PR it's only ~2.5s on my PC.
Best review commit by commit.