Update drafts/2026-01-24-profiling-rust-written-network-program.md
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
## Testing enviornment setup
|
||||
Install tools:
|
||||
|
||||
@@ -191,3 +190,72 @@ Fix direction:
|
||||
move to smol::Executor + N threads (usually num_cpus)
|
||||
|
||||
or run multiple block_on() workers (careful: avoid accept() duplication)
|
||||
|
||||
|
||||
## outcome
|
||||
|
||||
### CPU hotspot
|
||||
testing commands:
|
||||
|
||||
```bash
|
||||
iperf3 -c 127.0.0.1 -p 9000 -t 30 -P 1
|
||||
|
||||
sudo perf stat -p $(pidof oi) -e \
|
||||
cycles,instructions,cache-misses,branches,branch-misses,context-switches,cpu-migrations \
|
||||
-- sleep 30
|
||||
```
|
||||
|
||||
perf report:
|
||||
|
||||
```text
|
||||
Performance counter stats for process id '207279':
|
||||
|
||||
98,571,874,480 cpu_atom/cycles/ (0.10%)
|
||||
134,732,064,800 cpu_core/cycles/ (99.90%)
|
||||
75,889,748,906 cpu_atom/instructions/ # 0.77 insn per cycle (0.10%)
|
||||
159,098,987,713 cpu_core/instructions/ # 1.18 insn per cycle (99.90%)
|
||||
30,443,258 cpu_atom/cache-misses/ (0.10%)
|
||||
3,155,528 cpu_core/cache-misses/ (99.90%)
|
||||
15,003,063,317 cpu_atom/branches/ (0.10%)
|
||||
31,479,765,962 cpu_core/branches/ (99.90%)
|
||||
149,091,165 cpu_atom/branch-misses/ # 0.99% of all branches (0.10%)
|
||||
195,562,861 cpu_core/branch-misses/ # 0.62% of all branches (99.90%)
|
||||
1,138 context-switches
|
||||
37 cpu-migrations
|
||||
|
||||
33.004738330 seconds time elapsed
|
||||
```
|
||||
|
||||
|
||||
### FlameGraph
|
||||
testing commands:
|
||||
|
||||
```bash
|
||||
sudo perf record -F 199 -g -p $(pidof oi) -- sleep 30
|
||||
sudo perf script | stackcollapse-perf.pl | flamegraph.pl > oi.svg
|
||||
```
|
||||
|
||||
outcome:
|
||||
|
||||
oi.svg
|
||||
|
||||
commands:
|
||||
|
||||
```bash
|
||||
sudo perf record -F 199 --call-graph dwarf,16384 -p $(pidof oi) -- sleep 30
|
||||
sudo perf script | stackcollapse-perf.pl | flamegraph.pl > oi_dwarf.svg
|
||||
```
|
||||
|
||||
outcome:
|
||||
|
||||
oi_dwarf.svg
|
||||
|
||||
|
||||
### syscall-cost check
|
||||
|
||||
```bash
|
||||
sudo strace -ff -c -p $(pidof oi) -o /tmp/oi.strace
|
||||
# run 15–30s under load, then Ctrl+C
|
||||
tail -n +1 /tmp/oi.strace.*
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user