Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve pty host startup marks/traces, revive terminal procs in parallel #186041

Merged
merged 2 commits into from
Jun 26, 2023

Conversation

Tyriar
Copy link
Member

@Tyriar Tyriar commented Jun 23, 2023

An approximate 22% speedup of this function.

Before (run1:60ms, run2:53ms):

2023-06-23 15:39:52.839 [trace] [RPC Request] PtyService#reviveTerminalProcesses([{"id":1,"shellLaunchConfig":{"executable":"/usr/local/bin/pwsh"
2023-06-23 15:39:52.841 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.843 [debug] MutationLogger "Persistent process "1" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.878 [trace] [RPC Response] PtyService#createProcess 1
2023-06-23 15:39:52.881 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.882 [debug] MutationLogger "Persistent process "2" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.884 [trace] [RPC Response] PtyService#createProcess 2
2023-06-23 15:39:52.885 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.885 [debug] MutationLogger "Persistent process "3" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.887 [trace] [RPC Response] PtyService#createProcess 3
2023-06-23 15:39:52.888 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.888 [debug] MutationLogger "Persistent process "4" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.890 [trace] [RPC Response] PtyService#createProcess 4
2023-06-23 15:39:52.891 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.891 [debug] MutationLogger "Persistent process "5" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.893 [trace] [RPC Response] PtyService#createProcess 5
2023-06-23 15:39:52.893 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.894 [debug] MutationLogger "Persistent process "6" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.896 [trace] [RPC Response] PtyService#createProcess 6
2023-06-23 15:39:52.896 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:39:52.897 [debug] MutationLogger "Persistent process "7" interaction state" set to "None", reason: initialized
2023-06-23 15:39:52.898 [trace] [RPC Response] PtyService#createProcess 7
2023-06-23 15:39:52.899 [trace] [RPC Response] PtyService#reviveTerminalProcesses undefined

2023-06-23 15:40:52.684 [trace] [RPC Request] PtyService#reviveTerminalProcesses([{"id":1,"shellLaunchConfig":{"executable":"/usr/local/bin/pwsh"
2023-06-23 15:40:52.704 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.705 [debug] MutationLogger "Persistent process "1" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.723 [trace] [RPC Response] PtyService#createProcess 1
2023-06-23 15:40:52.724 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.724 [debug] MutationLogger "Persistent process "2" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.725 [trace] [RPC Response] PtyService#createProcess 2
2023-06-23 15:40:52.726 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.726 [debug] MutationLogger "Persistent process "3" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.727 [trace] [RPC Response] PtyService#createProcess 3
2023-06-23 15:40:52.728 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.728 [debug] MutationLogger "Persistent process "4" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.729 [trace] [RPC Response] PtyService#createProcess 4
2023-06-23 15:40:52.730 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.730 [debug] MutationLogger "Persistent process "5" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.734 [trace] [RPC Response] PtyService#createProcess 5
2023-06-23 15:40:52.734 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.734 [debug] MutationLogger "Persistent process "6" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.736 [trace] [RPC Response] PtyService#createProcess 6
2023-06-23 15:40:52.736 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:40:52.736 [debug] MutationLogger "Persistent process "7" interaction state" set to "None", reason: initialized
2023-06-23 15:40:52.737 [trace] [RPC Response] PtyService#createProcess 7
2023-06-23 15:40:52.737 [trace] [RPC Response] PtyService#reviveTerminalProcesses undefined

After (run1:47ms, run2:41ms):

2023-06-23 15:38:36.803 [trace] [RPC Request] PtyService#reviveTerminalProcesses([{"id":1,"shellLaunchConfig":{"executable":"/usr/local/bin/pwsh"
2023-06-23 15:38:36.805 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.806 [debug] MutationLogger "Persistent process "1" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.834 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.834 [debug] MutationLogger "Persistent process "2" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.836 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.836 [debug] MutationLogger "Persistent process "3" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.838 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.838 [debug] MutationLogger "Persistent process "4" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.840 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.840 [debug] MutationLogger "Persistent process "5" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.842 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.842 [debug] MutationLogger "Persistent process "6" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.846 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:38:36.847 [debug] MutationLogger "Persistent process "7" interaction state" set to "None", reason: initialized
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 1
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 2
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 3
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 4
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 5
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 6
2023-06-23 15:38:36.849 [trace] [RPC Response] PtyService#createProcess 7
2023-06-23 15:38:36.850 [trace] [RPC Response] PtyService#reviveTerminalProcesses undefined

2023-06-23 15:41:57.258 [trace] [RPC Request] PtyService#reviveTerminalProcesses([{"id":1,"shellLaunchConfig":{"executable":"/usr/local/bin/pwsh"
2023-06-23 15:41:57.266 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.268 [debug] MutationLogger "Persistent process "1" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.282 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.283 [debug] MutationLogger "Persistent process "2" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.285 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.285 [debug] MutationLogger "Persistent process "3" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.286 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.286 [debug] MutationLogger "Persistent process "4" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.289 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.289 [debug] MutationLogger "Persistent process "5" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.291 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.291 [debug] MutationLogger "Persistent process "6" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.292 [trace] [RPC Request] PtyService#createProcess({"executable":"/usr/local/bin/pwsh
2023-06-23 15:41:57.292 [debug] MutationLogger "Persistent process "7" interaction state" set to "None", reason: initialized
2023-06-23 15:41:57.296 [trace] [RPC Response] PtyService#createProcess 1
2023-06-23 15:41:57.297 [trace] [RPC Response] PtyService#createProcess 2
2023-06-23 15:41:57.297 [trace] [RPC Response] PtyService#createProcess 3
2023-06-23 15:41:57.298 [trace] [RPC Response] PtyService#createProcess 4
2023-06-23 15:41:57.298 [trace] [RPC Response] PtyService#createProcess 5
2023-06-23 15:41:57.298 [trace] [RPC Response] PtyService#createProcess 6
2023-06-23 15:41:57.298 [trace] [RPC Response] PtyService#createProcess 7
2023-06-23 15:41:57.299 [trace] [RPC Response] PtyService#reviveTerminalProcesses undefined

@Tyriar Tyriar added this to the June 2023 milestone Jun 23, 2023
@Tyriar Tyriar requested a review from meganrogge June 23, 2023 22:49
@Tyriar Tyriar self-assigned this Jun 23, 2023
@Tyriar Tyriar enabled auto-merge June 23, 2023 22:49
@Tyriar Tyriar mentioned this pull request Jun 24, 2023
1 task
@Tyriar Tyriar merged commit adafd26 into main Jun 26, 2023
7 checks passed
@Tyriar Tyriar deleted the tyriar/185393_4 branch June 26, 2023 16:22
@github-actions github-actions bot locked and limited conversation to collaborators Aug 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants