Skip to content

Commit 32ea4c6

Browse files
committed
local mode
1 parent e53b3eb commit 32ea4c6

11 files changed

Lines changed: 501 additions & 90 deletions

File tree

pd-edge/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ Run the built-in framework to benchmark these scenarios:
280280

281281
Detailed report with charts: [`docs/HTTP_PROXY_PERF_REPORT_2026-03-14.md`](docs/HTTP_PROXY_PERF_REPORT_2026-03-14.md)
282282
Generic `proxy::forward` experiment report: [`docs/HTTP_PROXY_PERF_REPORT_2026-03-15.md`](docs/HTTP_PROXY_PERF_REPORT_2026-03-15.md)
283+
Perf methodology and baseline rules: [`docs/HTTP_PROXY_PERF_METHODOLOGY.md`](docs/HTTP_PROXY_PERF_METHODOLOGY.md)
283284

284285
Harness A standard comparisons run with VM fuel disabled by default. Pass `--vm-fuel <UNITS>` to turn it on.
285286

@@ -309,6 +310,12 @@ cargo run -p pd-edge --example http_proxy_perf_framework --release -- \
309310
--json-out target/http_proxy_perf_mode_threading.json
310311
```
311312

313+
Important:
314+
315+
- Baseline-relative percentages must use the matched baseline from the same run batch.
316+
- Do not compare a scenario from one rerun against a baseline row copied from another rerun.
317+
- If you repeat runs, compute each run's ratio first and then aggregate the ratios.
318+
312319
Fuel-impact latency sweep (proxy harness, scenario `no_host_calls_program`):
313320

314321
```bash

pd-edge/examples/http_proxy_perf_framework.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -682,13 +682,15 @@ impl Default for BenchConfig {
682682
#[serde(rename_all = "snake_case")]
683683
enum VmExecutionModeArg {
684684
Async,
685+
Local,
685686
Threading,
686687
}
687688

688689
impl VmExecutionModeArg {
689690
fn as_flag_value(self) -> &'static str {
690691
match self {
691692
VmExecutionModeArg::Async => "async",
693+
VmExecutionModeArg::Local => "local",
692694
VmExecutionModeArg::Threading => "threading",
693695
}
694696
}
@@ -698,11 +700,12 @@ fn parse_vm_execution_mode_arg(value: &str) -> Result<VmExecutionModeArg, String
698700
let normalized = value.trim().to_ascii_lowercase();
699701
match normalized.as_str() {
700702
"async" => Ok(VmExecutionModeArg::Async),
703+
"local" | "inline" | "current-task" | "current_task" => Ok(VmExecutionModeArg::Local),
701704
"threading" | "blocking" | "spawn-blocking" | "spawn_blocking" => {
702705
Ok(VmExecutionModeArg::Threading)
703706
}
704707
_ => Err(format!(
705-
"invalid --vm-execution-mode: {value} (expected async|threading)"
708+
"invalid --vm-execution-mode: {value} (expected async|local|threading)"
706709
)),
707710
}
708711
}
@@ -3794,7 +3797,7 @@ Options:\n\
37943797
--vm-fuel <UNITS> Enable cooperative VM fuel slices (default: disabled)\n\
37953798
--no-vm-fuel Disable VM fuel slices\n\
37963799
--vm-fuel-check-interval <OPS> Fuel check interval for proxy VM (default: 32)\n\
3797-
--vm-execution-mode <MODE> Proxy VM execution mode: async|threading (default: async)\n\
3800+
--vm-execution-mode <MODE> Proxy VM execution mode: async|local|threading (default: async)\n\
37983801
--fuel-latency-sweep Run latency sweeps for fuel and fuel-check-interval (defaults to scenario no_host_calls_program)\n\
37993802
--fuel-latency-fuels <CSV> CSV list for fuel sweep; must be > 0 (default starts at 1)\n\
38003803
--fuel-latency-check-intervals <CSV> CSV list for check-interval sweep; must be > 0 (default starts at 1)\n\

0 commit comments

Comments
 (0)