| # Auto-snapshotting | |
| IMPORTANT: memory snapshots should not be requested from external users because they may contain PII. | |
| If a user reports that the process `dart:analysis_server.dart.snapshot` takes too much memory, | |
| and the issue is hard to reproduce, you may want to request memory snapshots from the user. | |
| ## Request numbers | |
| Ask user to provide memory footprint for the process `dart:analysis_server.dart.snapshot`. | |
| If there are many instances of the process, ask for the biggest memory footprint among | |
| the instances. | |
| - **Mac**: column 'Real Mem' in 'Activity Monitor' | |
| - **Windows**: TODO: add content | |
| - **Linux**: TODO: add content | |
| ## Create auto-snapshotting argument | |
| Based on the reported and expected values, construct auto-snapshotting argument. See example in | |
| the [test file](../../../../test/utilities/usage_tracking/usage_tracking_test.dart), the | |
| constant `_autosnapshottingArg`. | |
| See explanation of parameters in | |
| [documentation for AutoSnapshottingConfig](https://github.com/dart-lang/leak_tracker/blob/main/lib/src/usage_tracking/model.dart). | |
| ## Instruct user to configure analyzer | |
| Pass the created argument to the user and instruct them to configure | |
| analyzer. | |
| ### For VSCode | |
| 1. Open Settings > Extensions > Dart > Analyser | |
| 2. Add the argument to `Dart: Analyzer Additional Args` | |
| ### For Android Studio | |
| 1. Open Android Stusio screen 'Welcome to Android Studio' | |
| 2. Press Cmd + Shift + A | |
| 2. Type 'Registry' into search field | |
| 3. Click 'Registry...' | |
| 4. Add the argument to the value of the key 'dart.server.additional.arguments' | |
| ## Analyze snapshots | |
| Ask user to provide the collected snapshots and analyze them. | |
| TODO (polina-c): link DevTools documentation |