Improve docs coverage and refresh profiling parser artifacts

Add domain-specific XML documentation across src server components to satisfy CommentChecker, and update dotTrace parsing outputs used for diagnostics.
This commit is contained in:
Joseph Doherty
2026-03-14 04:06:04 -04:00
parent 46ead5ea9f
commit 5de4962bd3
46 changed files with 761 additions and 10488 deletions

View File

@@ -223,6 +223,13 @@ export DOTTRACE_APP_DIR="/path/to/dotTrace.app/Contents/DotFiles"
python3 tools/dtp_parse.py snapshots/js-ordered-consume.dtp --stdout
```
Useful flags:
- `--top N` limits hotspot and flat-path output. Default: `200`
- `--filter TEXT` keeps only call-tree paths and hotspots whose method names match `TEXT`
- `--flat` or `--paths` adds a `hotPaths` section with the heaviest flat call chains
- `--include-idle` keeps idle and wait methods in hotspot/path rankings. Idle exclusion is on by default.
### Write JSON to a file
```bash
@@ -230,16 +237,26 @@ python3 tools/dtp_parse.py snapshots/js-ordered-consume.dtp \
--out /tmp/js-ordered-consume-calltree.json
```
```bash
python3 tools/dtp_parse.py snapshots/js-ordered-consume.dtp \
--filter Microsoft.DotNet.Cli.Program \
--flat \
--top 25 \
--out /tmp/js-ordered-consume-calltree.json
```
### Output shape
The generated JSON contains:
- `snapshot` — source path, payload type, thread count, node count
- `snapshot` — source path, payload type, time unit, thread count, node count, and reader diagnostics
- `summary` — wall time, active time, total samples, and top exclusive method summary
- `threadRoots` — top-level thread roots with inclusive time
- `callTree` — nested call tree rooted at a synthetic `<root>`
- `hotspots` — flat `inclusive` and `exclusive` method lists
- `hotPaths` — optional flat call-path list when `--flat` is used
Hotspot entries are method-first. Synthetic frames such as thread roots are excluded from the hotspot lists so the output is easier to feed into an LLM for slowdown analysis.
Hotspot entries are method-first. Synthetic frames such as thread roots are excluded from hotspot rankings, and idle wait frames are excluded by default so the output is easier to feed into an LLM for slowdown analysis.
### Typical analysis workflow