| # Profiling the analysis server hosted by VS Code |
| |
| The steps below show how to use the DevTools CPU profiler against the instance |
| of the analysis server being hosted by VS Code. This allows profiling a short |
| window of operations (such as typing in the editor or invoking code completion). |
| |
| - Open a project in VS Code that can be used to trigger the bad performance |
| - Run the **Preferences: Open Workspace Settings (JSON)** command from the |
| command palette (`F1`) or open the `.vscode/settings.json` file |
| - Add `"dart.analyzerVmServicePort": 8855` (the exact port number is not important |
| but you'll need it further down) |
| - Save the settings file |
| - A toast notification should appear in the bottom right warning you that the |
| analysis server's VM Service is enabled. This is a reminder that you should |
| remove the `dart.analyzerVmServicePort` setting when you are done. |
| - Wait for initial analysis to complete (No "Analyzing..." or spinners in the |
| status bar) |
| - Open a file and find a location where you can reproduce the bad performance |
| - Run the **Dart: Open DevTools in Browser** command from the palette (`F1`) |
| - In DevTools, enter `http://localhost:8855/` (using the port number from above) |
| and click **Connect** |
| - Navigate to the **CPU Profiler** tab |
| - Click **Enable Profiler** |
| - In the isolate selector (bottom middle of the page), select the Isolate named |
| **main** |
| - Click the **Start recording** button |
| - Switch back to VS Code and perform the actions that cause bad performance |
| - Back in DevTools, click the **Stop recording** button in the CPU Profiler |
| |
| Profiling information should be displayed automatically and can be exported |
| using the export button on the top right corner. Exported information may |
| contain paths and class/member names from your project. |
| |
| When you are done, don't forget to remove the VM Service port from your |
| workspace settings: |
| |
| - Run the **Preferences: Open Workspace Settings (JSON)** command from the |
| command palette (`F1`) or open the `.vscode/settings.json` file |
| - Remove the `"dart.analyzerVmServicePort": 8855` setting |
| - Save the settings file |