-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
Experiment: PGO for desktop application #170931
Comments
Couple of gotchas:
[57408:0112/184938.708273:ERROR:network_service_instance_impl.cc(470)] Network service crashed, restarting service.
[57408:0112/184938.709155:ERROR:profiling_utils.cc(87)] Opening file: /child_pool-0.profraw failed with -5
[57666:0112/184938.764001:ERROR:validation_errors.cc(106)] Invalid message: VALIDATION_ERROR_UNEXPECTED_NULL_POINTER (null field 1) However, we can mitigate this by controlling the path via LLVM_PROFILE_FILE environment variable. I have decided to store the files in the user data directory, an example folder structure is as follows. |
|
Chromium build configuration has opt-in support for PGO https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/docs/pgo.md. The issue is to track the effort of optimizing the Electron runtime with PGO for VSCode. This will be a multi-step process and initially some manual steps are also involved, we will investigate automating the whole flow if the results are satisfying.
For this experiment, we are using the instrumented version to collect the profile. Steps involved are as follows,
Instrumentation Phase
Building
Running
Selfhost on the build and perform your everyday tasks, at the end of every run files with extension
*.profraw
will be generated in the user data directory underPGO_Profiles
folder.🏃 At EOD, upload the generated
*.profraw
files to#proj-pgo
channelOptimization Phase
Building
.profraw
files into.profdata
using llvm-profdata script.profdata
using the following build flagsThe text was updated successfully, but these errors were encountered: