blob: a3aa370dc34373efb911d0ae30fc96e8ad2c1de1 [file] [log] [blame] [view]
# 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